» »

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 ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[c#] Slika iz URL

Oddelek: Programiranje
162613 (2200) MrBrdo
»

C# Pomoč

Oddelek: Programiranje
131400 (1225) jizzer
»

uporaba C++ unmanaged kode v C#.NET projektu

Oddelek: Programiranje
111898 (1621) krho
»

[c#] enostavna Igrca -> poraba procesorja 95%

Oddelek: Programiranje
192157 (1521) elKaktus
»

[Visual C#] posodabljanje polja

Oddelek: Programiranje
111646 (1466) iggy1

Več podobnih tem