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(); } } }
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); }
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 } }
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 } }
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 } }
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 } }
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); } }
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 } }
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 }