package Main; import org.newdawn.slick.Animation; import org.newdawn.slick.GameContainer; import org.newdawn.slick.Graphics; import org.newdawn.slick.SlickException; import org.newdawn.slick.SpriteSheet; public class Ball { SpriteSheet virus_sheet; Animation virus; int xPos,yPos; float xSpd,ySpd; boolean isColliding = false,ballIsKilled = true; //initial methode mit Koordinatenbestimmung und startrichtung void init (GameContainer gc,int xPos, int yPos, int invaderSpd) throws SlickException{ this.xPos = xPos; this.yPos = yPos; this.xSpd = 1.0f * invaderSpd;//initiierung mit Hacker flugrichtungsindikation this.ySpd = 1.0f; virus_sheet = new SpriteSheet ("Main/Virus_sheet.png", 72, 72); virus = new Animation(virus_sheet,2,1,3,4,true,200,true); } void render(GameContainer gc, Graphics g) throws SlickException{ virus.draw(xPos-36, yPos-36); } void update(GameContainer gc, float _delta)throws SlickException{ this.xPos += xSpd; this.yPos += ySpd; } public void collisionManager(String direction){//Verwaltet Apprallrichtung und intensität switch(direction){ case "x_inverted" :this.xSpd *= -1; break; case "y_inverted" :this.ySpd *= -1; break; case "rebounce" :this.xSpd *= -1; this.ySpd *= -1;break; case "left" :this.xSpd *= -1; this.ySpd *= -1;break; case "midleft" :this.xSpd *= 2; this.ySpd *= -1;break; case "middle" :this.ySpd *= -1; break; case "midright" :this.xSpd *= 2; this.ySpd *= -1;break; case "right" :this.xSpd *= -1; this.ySpd *= -1;break; } } //ball "zerstörung" public void killBall(GameContainer gc) throws SlickException{ init(gc, -50,350, 1); ballIsKilled=true; } }