我正在用 Java 开发一个小游戏,并且我正在重写玩家运动系统,使其不是基于网格的。它是一个 2D 横向卷轴,我想要实现的是基本的玩家移动,因此当用户按住并按住右键时,玩家向右移动,左键也是如此。我遇到的问题是另一个类中的 Paint 组件在屏幕上绘制了播放器的图像,位置 X 和 Y 存储在设置类中。然后当用户按下右时,一个 KeyListener 类得到,并添加到 X 值(左相同,但每次减 1)。这会在屏幕上创建一个缓慢移动的角色,我想要做的是让他移动得更快,而不是每次添加超过 1px,因为它看起来像是在跳过像素(我已经尝试过)。
我想知道是否有更好的方法来解决这个问题,因为我使用的代码是最低限度的,我的结果将是一个平稳移动的 Player。
KeyListener 片段:
public void keyPressed(KeyEvent arg0) {
int key = arg0.getKeyCode();
if(key == 39) { // Right Key
Settings.player_pos_x++;
}else if(key == 37) { // Left Key
Settings.player_pos_x--;
}
main.Game.redo();
}
在屏幕上绘制用户:
g.drawImage(player_image, Settings.player_pos_x, Settings.player_pos_y, this);
任何帮助表示赞赏,如果您需要更多信息或代码,请随时询问。