preloder

Game em C# – Colisão

O código a seguir permite programar uma colisão entre duas pictureBox. Quando elas se encontram em uma determinada coordenada.



O truque é comparar a coordenada do PacMan com a coordenada da fruta, mas precisamos considerar também o tamanho da fruta para que quando o PacMan encoste na borda da pictureBox da fruta já ocorra a colisão.

Evento KeyDown

É no evento KeyDown do Form que a mágica acontece, este evento captura as teclas pressionadas pelo usuário e depois executa uma ação;

           // Movimenta o PacMan
            if (e.KeyCode == Keys.Up) PacMan.Location = new Point(PacMan.Location.X, PacMan.Location.Y-10);
            if (e.KeyCode == Keys.Down) PacMan.Location = new Point(PacMan.Location.X, PacMan.Location.Y + 10);
            if (e.KeyCode == Keys.Right) PacMan.Location = new Point(PacMan.Location.X + 10, PacMan.Location.Y);
            if (e.KeyCode == Keys.Left) PacMan.Location = new Point(PacMan.Location.X - 10, PacMan.Location.Y);
                      
            // Mostra as coordenadas
            label1.Text = "X: " + PacMan.Location.X;
            label2.Text = "Y: " + PacMan.Location.Y;
            
            /* Compara as coordenadas do PacMan com o da fruta para 
             * verificar se houve a colisão */

            if (
                PacMan.Location.X >= Frutinha.Location.X - Frutinha.Size.Width + 5
                &&
                PacMan.Location.X <= Frutinha.Location.X + Frutinha.Size.Width - 5
                &&
                PacMan.Location.Y >= Frutinha.Location.Y - Frutinha.Size.Height + 5
                &&
                PacMan.Location.Y <= Frutinha.Location.Y + Frutinha.Size.Height - 5
                ) 
            {                
                Frutinha.Visible = false;
            }

Download do exemplo

Este é um mero exemplo, obviamente você deverá implementar mais ações para tornar o game mais interessante. Faça o download aqui.

Deixe seu comentário