相关疑难解决方法(0)

在JavaFX中如何在屏幕上移动精灵?

我是JavaFX的新手,我正在尝试编写一个动画2D角色穿过屏幕的游戏(例如最初的塞尔达传说游戏).我在Swing中完成了这个,通过创建我自己的Sprite类并覆盖Swing中的paintComponent()方法,然后放入我自己的g2d.drawImage(...); 在那里调用,它将正确的子帧从Sprite复制到JPanel中正确的x,y目的地,从而实现动画(行走)2D图像在屏幕上的移动.

我怎么能在JavaFX中做到这一点?我找到了关于如何创建精灵的一个很好的例子:http: //blog.netopyr.com/2012/03/09/creating-a-sprite-animation-with-javafx/ 在JavaFX中,但我该如何做PaintComponent和drawImage(...)部分?JavaFX是否有与PaintComponent等效的方法重新绘制所有内容?我试过调用primaryStage.show(); 方法,但是没有用.

我想我不清楚如何设置我的主游戏循环,触发刷新并在不同的x,y位置在场景上绘制图像?

什么是JavaFX等同于drawImage(...)方法?这种方法允许我在任何给定的x,y偏移处将源图像的一部分复制到目标场景中.这就是我在Swing中在屏幕上移动动画精灵的方法.

最好的祝福,

Zareh

animation translation javafx sprite game-loop

7
推荐指数
1
解决办法
1万
查看次数

检测 JavaFX 中的单个按键

我在检测 JavaFX 中的单个按键时遇到问题。我必须检测箭头键,但每次我按下这些键中的任何一个时,我的代码的一部分都会被多次调用。我意识到这是因为AnimationTimer()是一个循环,因此这就是原因,但我不知道如何检测单键点击。无论如何,这是代码:

import javafx.animation.AnimationTimer;
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.input.KeyEvent;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

import java.util.HashSet;

public class Main extends Application {

    Stage window;
    static Scene scene;

    private static char[][] mapa = {
            {'X','X','X','X','X'},
            {'X','.','.','.','X'},
            {'X','.','M','.','X'},
            {'X','.','.','.','X'},
            {'X','X','X','X','X'}
    };

    private final int sizeX = 16;
    private final int sizeY = 16;

    static HashSet<String> currentlyActiveKeys;

    @Override
    public void start(Stage primaryStage) throws Exception {

        window = primaryStage;
        window.setTitle("Hello World");

        Group root …
Run Code Online (Sandbox Code Playgroud)

java javafx keyboard-events

5
推荐指数
1
解决办法
1万
查看次数