JavaFX: Moving image with arrow keys and spacebar
21,805
You have to add keyListener to your scene
private EventHandler<KeyEvent> keyListener = new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent event) {
if(event.getCode() == KeyCode.UP || event.getCode() == KeyCode.DOWN ||
event.getCode() == KeyCode.RIGHT || event.getCode() == KeyCode.LEFT) {
//your code for moving the ship
}
else if(event.getCode() == KeyCode.SPACE) {
//your code for shooting the missile
}
event.consume();
}
};
Author by
Admin
Updated on July 09, 2022Comments
-
Admin almost 2 years
I'm trying to make a little game like Space Invaders. I'm using JavaFX with Netbeans 6.9 and couldn't find an answer elsewhere, so I thought I'ld just ask here.
I have an image of a space ship, which I would like to move using my arrow keys. When I press spacebar it should shoot a missile. The missile can destroy a meteorite.
Here's my current code:
import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.paint.Color; import javafx.scene.image.ImageView; import javafx.scene.image.Image; import javafx.animation.Timeline; import javafx.animation.Interpolator; var x: Number; Timeline { repeatCount: Timeline.INDEFINITE autoReverse: true keyFrames: [ at (0s) {x => 500.0}, at (10s) {x => -100.0 tween Interpolator.LINEAR} ] }.play(); Stage { title: "Shoot" scene: Scene { fill: Color.BLACK width: 800 height: 500 content: [ ImageView { x: 500 y: 25 image: Image { url: "{__DIR__}earth.jpg"; } } ImageView { translateX: bind x x: 150 y: 300 image: Image { url: "{__DIR__}meteorite.png"; } } ImageView { x: 400 y: 450 image: Image { url: "{__DIR__}spaceship.png"; } } ] } }
Thanks in advance.