Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Laserbeam extends Entity {
- private final float bulletSpeed = 2f; // snelheid van de laser
- private final float width = 5f; // breedte van de laser
- private final float height = 40f; // hoogte van de laser
- float xPos, yPos; // x en y positie van de laser
- static private Bitmap bitmap;
- private Game game;
- Laserbeam(Game game, float xPos, float yPos){
- this.game = game;
- this.xPos = xPos; // spawn de laser op de x positie van het schip
- this.yPos = yPos - 20; // spawn laser iets voor het schip
- }
- @Override
- public void tick() {
- yPos -= bulletSpeed; // elke tick de y positie updaten met de bulletspeed, de kogel gaat dus naar boven
- if(yPos == 0){ // wanneer de laser de bovenkant van het scherm bereikt verwijder dan de entity
- game.removeEntity(this);
- }
- for(EnemyShip enemyShip: game.getEntities(EnemyShip.class)){ // loop door alle enemy ships in de game
- // gebruik pythagoras om te berekenen of de laser een ander schip raakt, zo ja; verwijder het schip en de laser
- if(distance(enemyShip.xPos, enemyShip.yPos, xPos, yPos) < enemyShip.getSize()){
- game.removeEntity(enemyShip);
- game.removeEntity(this);
- }
- }
- }
- // stelling van pythagoras om te berekenen of de punten elkaar raken
- private float distance(float x1 , float y1, float x2, float y2){
- return (float) Math.sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2));
- }
- @Override
- public void draw(GameView gv) {
- if(bitmap == null){
- bitmap = gv.getBitmapFromResource(R.drawable.laser);
- }
- gv.drawBitmap(bitmap, xPos, yPos, width, height);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement