예제 #1
0
        public void move(OknoGry okno, Paddle belka)
        {
            if (visible)
            {
                x += speedX;
                y += speedY;

                if (x < 0)
                {
                    x = 0;
                    speedX *= -1;
                }
                else if (x + width > okno.Width)
                {
                    x = okno.Width - width;
                    speedX *= -1;
                }

                if (((x > belka.getX() && x < belka.getX() + belka.getWidth()) || (x + width > belka.getX() && x + width < belka.getX() + belka.getWidth())) &&
                    (y + height > belka.getY() && y + height < belka.getY() + belka.getHeight()))//warunek zderzenia z belka
                {
                    applyBonus(bonus, belka, okno.pilka, okno.lista, okno);
                    dezaktywuj();
                }
                else if (y + height > okno.Height)
                {
                    dezaktywuj();
                }
            }
        }
예제 #2
0
        public void move(OknoGry okno, Paddle belka)
        {
            if (visible)
            {
                x += speedX;
                y += speedY;

                if (x < 0)
                {
                    x       = 0;
                    speedX *= -1;
                }
                else if (x + width > okno.Width)
                {
                    x       = okno.Width - width;
                    speedX *= -1;
                }

                if (((x > belka.getX() && x < belka.getX() + belka.getWidth()) || (x + width > belka.getX() && x + width < belka.getX() + belka.getWidth())) &&
                    (y + height > belka.getY() && y + height < belka.getY() + belka.getHeight()))//warunek zderzenia z belka
                {
                    applyBonus(bonus, belka, okno.pilka, okno.lista, okno);
                    dezaktywuj();
                }
                else if (y + height > okno.Height)
                {
                    dezaktywuj();
                }
            }
        }
예제 #3
0
 public void setStart(Paddle belka, OknoGry okno)
 {
     setX(belka.getX() + belka.getWidth() / 2 - width / 2);
     setY(okno.Height - belka.getHeight() - height - 40);
     setSpeedX(6);
     setSpeedY(-6);
     belka.setWidth(belka.getBitmap().Width);
 }
예제 #4
0
 public void move(OknoGry okno)
 {
     x = okno.PointToClient(System.Windows.Forms.Cursor.Position).X - bitmapa.Width / 2;//update belki
     if (x < 0)
     {
         x = 0;
     }
     else if (x > okno.Width - width)
     {
         x = okno.Width - width;                             //kontrola ram okna
     }
 }
예제 #5
0
 private void applyBonus(int bonus, Paddle belka, Ball pilka, List<Brick>lista, OknoGry okno)
 {
     if (bonus == 2)
     {
         belka.setWidth(belka.getWidth() + 50);
         Message bonusInfo = new Message(okno.Width / 2, okno.Height / 2, "Zwiększenie belki!", 500, false, Color.Black);
         okno.listaMessage.Add(bonusInfo);//dodanie wiadomości
     }
     else if (bonus == 3)
     {
         pilka.setSpeedX(pilka.getSpeedX() + 3);
         pilka.setSpeedY(pilka.getSpeedY() + 3);
         Message bonusInfo = new Message(okno.Width / 2, okno.Height / 2, "Przyspieszenie!", 500, false, Color.Black);
         okno.listaMessage.Add(bonusInfo);//dodanie wiadomości
     }
     else if (bonus == 4)
     {
         pilka.setSpeedX(pilka.getSpeedX() - 3);
         pilka.setSpeedY(pilka.getSpeedY() - 3);
         if (pilka.getSpeedX() == 0) pilka.setSpeedX(-1);
         if (pilka.getSpeedY() == 0) pilka.setSpeedY(-1);//blokada przed ruchem poziomym i pionowym
         Message bonusInfo = new Message(okno.Width / 2, okno.Height / 2, "Zmiana kierunku piłki!", 500, false, Color.Black);
         okno.listaMessage.Add(bonusInfo);//dodanie wiadomości
     }
     else if (bonus == 5)
     {
         foreach (Brick brick in lista)
         {
             brick.setY(brick.getY() + brick.getHeight());
         }
         Message bonusInfo = new Message(okno.Width / 2, okno.Height / 2, "Obniżenie stropu!", 500, false, Color.Black);
         okno.listaMessage.Add(bonusInfo);//dodanie wiadomości
     }
     else if (bonus == 6)
     {
         foreach (Brick brick in lista)
         {
             brick.setHeight(brick.getHeight() / 2);
         }
         Message bonusInfo = new Message(okno.Width / 2, okno.Height / 2, "Zmiana rozmiaru kafelków", 500, false, Color.Black);
         okno.listaMessage.Add(bonusInfo);//dodanie wiadomości
     }
     else if (bonus == 7)
     {
         foreach (Brick brick in lista)
         {
             brick.setHeight(brick.getHeight() * 3 / 2);
         }
         Message bonusInfo = new Message(okno.Width / 2, okno.Height / 2, "Zwiększenie rozmiaru kafelków",500, false, Color.Black);
         okno.listaMessage.Add(bonusInfo);//dodanie wiadomości
     }
 }
예제 #6
0
        public void move(Paddle belka, OknoGry okno)
        {
            if (!okno.gra)
            {
                x = belka.getX() + belka.getWidth() / 2 - width / 2;
            }
            else
            {
                x += speedX;
                y += speedY;//poruszanie sie pilki
                if (x < 0)
                {
                    x = 0;
                    speedX *= -1;
                }
                else if (x > okno.Width - width)
                {
                    x = okno.Width - width;
                    speedX *= -1;
                }
                if (y < 0)
                {
                    y = 0;
                    speedY *= -1;
                }
                else if (y > okno.Height - height)
                {
                    okno.gra = false;
                    setStart(belka, okno);
                    Message poziom = new Message(okno.Width / 2, okno.Height / 2, "Tracisz zycie!", 1000, false, Color.Black);
                    okno.listaMessage.Add(poziom);//dodanie wiadomości
                    okno.pilka.setBalls(okno.pilka.getBalls() - 1);

                    if (okno.pilka.getBalls() <= 0)
                    {
                        MessageBox.Show("Przegrana!");
                        Application.Exit();
                    }

                }//sprawdzenie czy nie wychodzi poza ramy
                if(this*belka>0)
                {
                    speedY *= -1;
                }//kolizja z belka

            }
        }
예제 #7
0
        public void move(Paddle belka, OknoGry okno)
        {
            if (!okno.gra)
            {
                x = belka.getX() + belka.getWidth() / 2 - width / 2;
            }
            else
            {
                x += speedX;
                y += speedY;//poruszanie sie pilki
                if (x < 0)
                {
                    x       = 0;
                    speedX *= -1;
                }
                else if (x > okno.Width - width)
                {
                    x       = okno.Width - width;
                    speedX *= -1;
                }
                if (y < 0)
                {
                    y       = 0;
                    speedY *= -1;
                }
                else if (y > okno.Height - height)
                {
                    okno.gra = false;
                    setStart(belka, okno);
                    Message poziom = new Message(okno.Width / 2, okno.Height / 2, "Tracisz zycie!", 1000, false, Color.Black);
                    okno.listaMessage.Add(poziom);//dodanie wiadomości
                    okno.pilka.setBalls(okno.pilka.getBalls() - 1);

                    if (okno.pilka.getBalls() <= 0)
                    {
                        MessageBox.Show("Przegrana!");
                        Application.Exit();
                    }
                }//sprawdzenie czy nie wychodzi poza ramy
                if (this * belka > 0)
                {
                    speedY *= -1;
                }//kolizja z belka
            }
        }
예제 #8
0
        public void efektKolizji(int kolizja, Ball pilka, OknoGry okno)
        {
            switch (kolizja)
            {
                case 1:
                case 2:
                    visible = false;
                    pilka.setSpeedY(pilka.getSpeedY() * -1);
                    break;
                case 3:
                case 4:
                    visible = false;
                    pilka.setSpeedX(pilka.getSpeedX() * -1);
                    break;
            }

            if (okno.lotto.Next(100) < 10)//jeśli bonusik
            {
                BonusBrick bonus = new BonusBrick(x, y, width / 2, height / 2, true, okno.bonusBit, 1, 4, okno.lotto.Next(7));

                okno.listaBonus.Add(bonus);
            }
        }
예제 #9
0
        public void efektKolizji(int kolizja, Ball pilka, OknoGry okno)
        {
            switch (kolizja)
            {
            case 1:
            case 2:
                visible = false;
                pilka.setSpeedY(pilka.getSpeedY() * -1);
                break;

            case 3:
            case 4:
                visible = false;
                pilka.setSpeedX(pilka.getSpeedX() * -1);
                break;
            }

            if (okno.lotto.Next(100) < 10)//jeśli bonusik
            {
                BonusBrick bonus = new BonusBrick(x, y, width / 2, height / 2, true, okno.bonusBit, 1, 4, okno.lotto.Next(7));

                okno.listaBonus.Add(bonus);
            }
        }
예제 #10
0
 private void applyBonus(int bonus, Paddle belka, Ball pilka, List <Brick> lista, OknoGry okno)
 {
     if (bonus == 2)
     {
         belka.setWidth(belka.getWidth() + 50);
         Message bonusInfo = new Message(okno.Width / 2, okno.Height / 2, "Zwiększenie belki!", 500, false, Color.Black);
         okno.listaMessage.Add(bonusInfo);//dodanie wiadomości
     }
     else if (bonus == 3)
     {
         pilka.setSpeedX(pilka.getSpeedX() + 3);
         pilka.setSpeedY(pilka.getSpeedY() + 3);
         Message bonusInfo = new Message(okno.Width / 2, okno.Height / 2, "Przyspieszenie!", 500, false, Color.Black);
         okno.listaMessage.Add(bonusInfo);//dodanie wiadomości
     }
     else if (bonus == 4)
     {
         pilka.setSpeedX(pilka.getSpeedX() - 3);
         pilka.setSpeedY(pilka.getSpeedY() - 3);
         if (pilka.getSpeedX() == 0)
         {
             pilka.setSpeedX(-1);
         }
         if (pilka.getSpeedY() == 0)
         {
             pilka.setSpeedY(-1);                        //blokada przed ruchem poziomym i pionowym
         }
         Message bonusInfo = new Message(okno.Width / 2, okno.Height / 2, "Zmiana kierunku piłki!", 500, false, Color.Black);
         okno.listaMessage.Add(bonusInfo);//dodanie wiadomości
     }
     else if (bonus == 5)
     {
         foreach (Brick brick in lista)
         {
             brick.setY(brick.getY() + brick.getHeight());
         }
         Message bonusInfo = new Message(okno.Width / 2, okno.Height / 2, "Obniżenie stropu!", 500, false, Color.Black);
         okno.listaMessage.Add(bonusInfo);//dodanie wiadomości
     }
     else if (bonus == 6)
     {
         foreach (Brick brick in lista)
         {
             brick.setHeight(brick.getHeight() / 2);
         }
         Message bonusInfo = new Message(okno.Width / 2, okno.Height / 2, "Zmiana rozmiaru kafelków", 500, false, Color.Black);
         okno.listaMessage.Add(bonusInfo);//dodanie wiadomości
     }
     else if (bonus == 7)
     {
         foreach (Brick brick in lista)
         {
             brick.setHeight(brick.getHeight() * 3 / 2);
         }
         Message bonusInfo = new Message(okno.Width / 2, okno.Height / 2, "Zwiększenie rozmiaru kafelków", 500, false, Color.Black);
         okno.listaMessage.Add(bonusInfo);//dodanie wiadomości
     }
 }
예제 #11
0
 public void setStart(Paddle belka, OknoGry okno)
 {
     setX(belka.getX() + belka.getWidth() / 2 - width / 2);
     setY(okno.Height - belka.getHeight() - height - 40);
     setSpeedX(6);
     setSpeedY(-6);
     belka.setWidth(belka.getBitmap().Width);
 }
예제 #12
-1
 public void move(OknoGry okno)
 {
     x = okno.PointToClient(System.Windows.Forms.Cursor.Position).X - bitmapa.Width / 2;//update belki
     if (x < 0) x = 0;
     else if (x > okno.Width - width) x = okno.Width - width;//kontrola ram okna
 }