【问题标题】:JavaFX: Moving image with arrow keys and spacebarJavaFX:使用箭头键和空格键移动图像
【发布时间】:2014-03-27 17:17:33
【问题描述】:

我正在尝试制作像 Space Invaders 这样的小游戏。我正在将 JavaFX 与 Netbeans 6.9 一起使用,但在其他地方找不到答案,所以我想我会在这里问。

我有一张宇宙飞船的图像,我想用箭头键移动它。当我按空格键时,它应该发射导弹。导弹可以摧毁陨石。

这是我当前的代码:

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";
            }
        }
    ]
}
}

提前致谢。

【问题讨论】:

    标签: java javafx keyboard


    【解决方案1】:

    您必须将 keyListener 添加到您的场景中

    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();
        }
    };
    

    【讨论】:

    • 我对新的 LAMDA 表达式不是很好,所以恐怕我不能用你现在的代码。如果你有纯 Java 版本的代码,我很乐意编辑它!
    • 这会给你一些想法。你可以在javafx中实现它stackoverflow.com/questions/20485406/…
    猜你喜欢
    • 2013-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 2015-06-15
    • 1970-01-01
    相关资源
    最近更新 更多