使用Java 8在JavaFX中创建运动更新

时间:2015-05-17 17:37:48

标签: java timer javafx momentum

我有一个简单的JavaFX游戏,我用键码移动了角色。我现在想要改进这一点并增加一些“动力”。但是使用我的run方法,我的角色不会移动。请帮忙。这是我的代码,其中包含移动角色的先前方法。

注意:我有全局注册h和v设置。对于

import java.util.Timer;
import java.util.TimerTask;

我导入了以下内容:

 scene.addEventHandler(KeyEvent. KEY_PRESSED, ( key) -> {

            new Timer().scheduleAtFixedRate(new TimerTask() {   
                public void run() {
                    // Refreshes speed
                    if(h > -50 && h < 50)
                        iv2.setX( iv2.getX() + h);
                    if(v > -50 && v < 50)
                        iv2.setY( iv2.getY() + v);
                }
            }, 30, 30);

            if( key.getCode()==KeyCode. ENTER) {
                System. out.println( "You pressed enter");
            }
            if( key.getCode()==KeyCode. LEFT) {
                if( iv2.getX() - 25 > 0){
                    //iv2.setX( iv2.getX() - 50);
                    --h;
                }
            }
            if( key.getCode()==KeyCode. RIGHT) {
                if( iv2.getX() + 125 < scene.getWidth()){
                    //iv2.setX( iv2.getX() + 50);
                    ++h;
                }
            }
            if( key.getCode()==KeyCode. DOWN) {
                if( iv2.getY() + 150 < scene.getHeight()){
                    //iv2.setY( iv2.getY() + 50);
                    ++v;
                }
            }
            if( key.getCode()==KeyCode. UP) {
                if( iv2.getY() - 25 > 0)
                    //iv2.setY( iv2.getY() - 50);
                    --v;
            }

      });

我认为是正确的。

exec(str_replace('\classes', '', dirname(__FILE__)) . '\data\vedur ', $row);

0 个答案:

没有答案