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 | 2720 (2307) | MrBrdo |
» | C# PomočOddelek: Programiranje | 1470 (1295) | jizzer |
» | uporaba C++ unmanaged kode v C#.NET projektuOddelek: Programiranje | 1990 (1713) | krho |
» | [c#] enostavna Igrca -> poraba procesorja 95%Oddelek: Programiranje | 2201 (1565) | elKaktus |
» | [Visual C#] posodabljanje poljaOddelek: Programiranje | 1709 (1529) | iggy1 |