Sokoban - pomoc?

1

Sokoban - pomoc?

offline
  • Pridružio: 05 Maj 2010
  • Poruke: 112

Pravim igru Sokoban u cilju savladavanja Graphics klasa koje sam zapostavio...

Trenutno Sokoban "čikica" može da se kreće po form prostoru gde hoće, ali mene zanima kako da mu ograničim da na neke delove forme ne može ići, recimo da ne može da se kreće po ovim sivim pločicama na slici?

Kontao sam da tu zabranu mogu jedino da ograničim po pozicijama, recimo da preko linije X=10 ne može da se kreće, tj da uđe ispod linije 10...

Trenutni kod je ovaj:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Sokoban {     public partial class Form1 : Form     {         public Form1()         {             InitializeComponent();             this.BackgroundImage = Image.FromFile(@"C:\Users\Srdjan\Documents\Visual Studio 2010\Projects\Sokoban\slike\gems02.jpg");             this.BackgroundImageLayout = ImageLayout.Center;         }         Graphics g;         int x=120;         int y=280;         string key = "";         Image i;         private void Form1_Load(object sender, EventArgs e)         {         }         private void Form1_KeyDown(object sender, KeyEventArgs e)         {             if (e.KeyCode == Keys.Up)             {                 key = "gore";                 timer1.Start();             }             else if (e.KeyCode == Keys.Down)             {                 timer1.Start();                 key = "dole";             }             else if(e.KeyCode == Keys.Left)             {                 timer1.Start();                 key = "levo";             }             else if (e.KeyCode == Keys.Right)             {                 timer1.Start();                 key = "desno";             }             if (x >= 411 && y >= 425)             {                 timer1.Stop();             }         }         private void Form1_KeyUp(object sender, KeyEventArgs e)         {             if (e.KeyCode == Keys.Up || e.KeyCode == Keys.Down || e.KeyCode == Keys.Left || e.KeyCode == Keys.Right)             {                 timer1.Stop();             }         }         private void timer1_Tick(object sender, EventArgs e)         {             timer1.Interval = 100;             if (key == "gore")             {                 y -= 40;                 this.Refresh();             }             else if (key == "dole")             {                 y += 40;                 this.Refresh();             }             else if (key == "levo")             {                 x -= 40;                 this.Refresh();             }             else if (key == "desno")             {                 x += 40;                 this.Refresh();             }         }         private void Form1_Paint(object sender, PaintEventArgs e)         {             SolidBrush sb = new SolidBrush(Color.Red);             Pen p = new Pen(Color.Brown, 5);             g = this.CreateGraphics();             i = Image.FromFile(@"C:\Users\Srdjan\Documents\Visual Studio 2010\Projects\Sokoban\slike\cikica.png");             g.DrawImage(i,x,y,40,40);         }     } }



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 26 Okt 2008
  • Poruke: 1560
  • Gde živiš: Sremski Mihaljevci

pa napisi prosto ako je pozicija cikice udarila" u zid onda nema kretanja.



offline
  • Pridružio: 05 Maj 2010
  • Poruke: 112

Napisano: 13 Sep 2012 15:20

Peki_92 ::pa napisi prosto ako je pozicija cikice udarila" u zid onda nema kretanja.

Pa tu i jeste problem, to "udarila u zid" mogu samo pomocu pozicije da kazem i ogranicim sa timer1.Stop(); , ali kada se timer jednom zaustavi ne znam kako da ga ponovo ukljucim kada se vrati u 'dozvoljeni' prostor?

Mislim da mi treba nesto ovako -> if(timer1.Stopped() == true) { timer.Start(); }

P.S: Je l' postoji neki 'koordinator' za formu u Visual Studiu, trebam pola sata da ubadam odredjenu poziciju na formi.. Bebee Dol

Dopuna: 13 Sep 2012 15:34

Jao znam :O samo vratim poziciju... Job Done... tema moze pod lock

offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Zašto ne bi podelio igru s nama... da je malo probamo i prokomentarišemo? Smile

offline
  • Pridružio: 05 Maj 2010
  • Poruke: 112

Srki_82 ::Zašto ne bi podelio igru s nama... da je malo probamo i prokomentarišemo? Smile
haha polako čoveče, nije još ni pola završeno... Sada kreiram ove kutijice :O

offline
  • Pridružio: 26 Okt 2008
  • Poruke: 1560
  • Gde živiš: Sremski Mihaljevci

eto reseno. Nema lock. Da je vidimo prvo.

offline
  • Pridružio: 05 Maj 2010
  • Poruke: 112

haha tek sad vidim ovo, igra će malo kasniti jer radim nekom liku sajt Smile

offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Da budem iskren, na osnovu tvog koda rekao bih da igra nikad neće biti gotova, a ne da će kasniti.

offline
  • Pridružio: 05 Maj 2010
  • Poruke: 112

Srki_82 ::Da budem iskren, na osnovu tvog koda rekao bih da igra nikad neće biti gotova, a ne da će kasniti.

Surprised
Pazi, ovo sam pre svega krenuo radi vežbanja Graphics klasa koje sam zapostavio, radio sam 2 godine u ADO.NET-u, u game developmentu rekao bih ima najviše mozganja što mi se sviđa i zbog tih razloga sam krenuo na ovaj kraj C#-a, ovaj kod gore sam samostalno radio bez ikakve pomoći interneta, sem ovo na ovom forumu, ali sam opet sam skontao gde je bio problem(glup problem), sigurno da je kod botovski jer sam na svaki pokret radio refresh forme i forma pri svakom key eventu treperi, ali eto ne znam iskreno kako da zaobiđem form refresh...

Uglavnom radim sada dosta ozbiljniju stvar u PHP-u, kada završim bacam se na ovo, završiću do kraja ove nedelje to sa PHP-om...

offline
  • Pridružio: 26 Okt 2008
  • Poruke: 1560
  • Gde živiš: Sremski Mihaljevci

dokle si stgao?

Ko je trenutno na forumu
 

Ukupno su 587 korisnika na forumu :: 29 registrovanih, 3 sakrivenih i 555 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., Apok, BRATORIII, darios, DARKMEN22, dekao, dragon986, GreenMan, gzoki, HrcAk47, Konda, krlebgd77, loon123, MarKhan, Marko1238, Mercury, nebkv, Oluj2.1, Outis, Panter, pein, RJ, Smiljke, spektorsky, Srki94, vargas, vasa.93, VJ, zajcev1