Forum » Programiranje » Pomoč pri programiranju pacmana v visual studiu.
Pomoč pri programiranju pacmana v visual studiu.
Jiffle ::
public partial class Form1 : Form { public Form1() { InitializeComponent(); } char smerP = 'R'; int speedP = 3; char smerG = 'R'; int speedG = 3; int tocke = 0; /* R - right L - left U - up D - down */ private void timer1_Tick(object sender, EventArgs e) { switch (smerP) { case 'R': pbPacman.Left += speedP; break; case 'L': pbPacman.Left -= speedP; break; case 'U': pbPacman.Top -= speedP; break; case 'D': pbPacman.Top += speedP; break; } } private void pbPacman_Tick(object sender, EventArgs e) { if (pbPacman.Bounds.IntersectsWith(cesnja.Bounds)) { tocke += 100; tocke2.Text=(tocke.ToString()); }; if (pbPacman.Bounds.IntersectsWith(limona.Bounds)) { tocke += 100; tocke2.Text = (tocke.ToString()); }; } private void Form1_KeyDown(object sender, KeyEventArgs e) { switch (e.KeyValue) { case 37: smerP = 'L'; break; case 38: smerP = 'U'; break; case 39: smerP = 'R'; break; case 40: smerP = 'D'; break; } } private void tGhost_Tick(object sender, EventArgs e) { /* Ghost-a bi bilo dobro omejiti, da bi se premikal le znotraj okna, sicer hitro uide izven vidnega polja. */ switch (smerG) { case 'R': pbGhost.Left += speedG; break; case 'L': pbGhost.Left -= speedG; break; case 'U': pbGhost.Top -= speedG; break; case 'D': pbGhost.Top += speedG; break; } // Spodnji del kode zazna, ali sta se pacman in gost 'zaletela' if (pbGhost.Bounds.IntersectsWith(pbPacman.Bounds)) { tGhost.Enabled = false; tPacman.Enabled = false; MessageBox.Show("Konec igre"); } } private void tSpremeniSmerG_Tick(object sender, EventArgs e) { /* Trapasta logika premikanja ghost-a. Vsake toliko časa izbere naključno smer. Primerna izboljšava bi bila tudi, če bi se ghost premikal tako, da bi sledil pacmanu. */ Random r = new Random(); switch (r.Next(4)) { case 0: smerG = 'U'; break; case 1: smerG = 'R'; break; case 2: smerG = 'D'; break; case 3: smerG = 'L'; break; } } } }
Zanima kaj tocno imam narobe pri "private void pbPacman_Tick(object sender, EventArgs e)" ker hočem da mi vsakič ko se pacman dotakne sadja mu zviša tocke, toda mi ne uspeva. Zanima me tudi kako bi najlazji nacin naredil "zide" ( to da pacman niti ghost ne more iti čez , ali je treba uporabiti Intersect.Bounds kodo?
- spremenil: bluefish ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [c#] Slika iz URLOddelek: Programiranje | 2613 (2200) | MrBrdo |
» | C# PomočOddelek: Programiranje | 1400 (1225) | jizzer |
» | uporaba C++ unmanaged kode v C#.NET projektuOddelek: Programiranje | 1898 (1621) | krho |
» | [c#] enostavna Igrca -> poraba procesorja 95%Oddelek: Programiranje | 2157 (1521) | elKaktus |
» | [Visual C#] posodabljanje poljaOddelek: Programiranje | 1646 (1466) | iggy1 |