Advertisement
Guest User

Laserbeam.java

a guest
May 20th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.75 KB | None | 0 0
  1. public class Laserbeam extends Entity {
  2.  
  3.     private final float bulletSpeed = 2f; // snelheid van de laser
  4.     private final float width = 5f; // breedte van de laser
  5.     private final float height = 40f; // hoogte van de laser
  6.  
  7.     float xPos, yPos; // x en y positie van de laser
  8.  
  9.     static private Bitmap bitmap;
  10.  
  11.     private Game game;
  12.  
  13.     Laserbeam(Game game, float xPos, float yPos){
  14.         this.game = game;
  15.         this.xPos = xPos; // spawn de laser op de x positie van het schip
  16.         this.yPos = yPos - 20; // spawn laser iets voor het schip
  17.     }
  18.  
  19.     @Override
  20.     public void tick() {
  21.         yPos -= bulletSpeed; // elke tick de y positie updaten met de bulletspeed, de kogel gaat dus naar boven
  22.  
  23.         if(yPos == 0){ // wanneer de laser de bovenkant van het scherm bereikt verwijder dan de entity
  24.             game.removeEntity(this);
  25.         }
  26.  
  27.         for(EnemyShip enemyShip: game.getEntities(EnemyShip.class)){ // loop door alle enemy ships in de game
  28.             // gebruik pythagoras om te berekenen of de laser een ander schip raakt, zo ja; verwijder het schip en de laser
  29.             if(distance(enemyShip.xPos, enemyShip.yPos, xPos, yPos) < enemyShip.getSize()){
  30.                 game.removeEntity(enemyShip);
  31.                 game.removeEntity(this);
  32.             }
  33.         }
  34.     }
  35.  
  36.  
  37.     // stelling van pythagoras om te berekenen of de punten elkaar raken
  38.     private float distance(float x1 , float y1, float x2, float y2){
  39.         return (float) Math.sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2));
  40.     }
  41.  
  42.     @Override
  43.     public void draw(GameView gv) {
  44.         if(bitmap == null){
  45.             bitmap = gv.getBitmapFromResource(R.drawable.laser);
  46.         }
  47.         gv.drawBitmap(bitmap, xPos, yPos, width, height);
  48.     }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement