I do not understand why I am getting weird data values with invalid at the end for the laser even though I created a object reference of the Laser class. The code is written in Java
Here's my code to the Ship and Laser class:
public class Ship extends Sprite implements KeyListener{
private Laser laser;
public Ship(Vector2D position) {
this(position.x, position.y);
}
public Ship(double x, double y) {
// Physics/movement stuff
position = new Vector2D(x, y);
velocity = new Vector2D();
speed = 5.0;
// Make the Java key listener key-repeat work as we expect
isLeftPressed = false;
isRightPressed = false;
try {
image = ImageIO.read(new File("src/pics/ship.PNG"));
}
catch (IOException e) {
e.printStackTrace();
}
// Add ship as a key listener
Game.getInstance().addKeyListener(this);
}
public void keyPressed(KeyEvent e) {
// Handle the player keys
switch (e.getKeyCode()) {
case (KeyEvent.VK_Z):
laser = new Laser(getLaserSpawnPoint());
Game.getInstance().add(laser);
System.out.println(laser);
break;
}
}
private Vector2D getLaserSpawnPoint() {
return new Vector2D(position.x + 22, position.y - 52);
}
}
public class Laser extends Sprite {
private Image image;
private Rectangle rectangle;
public Laser(Vector2D position) {
this(position.x, position.y);
}
public Laser(double x, double y) {
position = new Vector2D(x, y);
velocity = new Vector2D(0, -5);
try {
image = ImageIO.read(new File("src/pics/laser.PNG"));
}
catch (IOException e) {
e.printStackTrace();
}
}
public class Sprite extends Component implements GameComponent {
public Vector2D position;
public Vector2D velocity;
@Override
public void update(long milliseconds) {
// TODO Auto-generated method stub
}
@Override
public void draw(Graphics g) {
// TODO Auto-generated method stub
}
}