首页 > 解决方案 > 如何通过按键更改对象的坐标?

问题描述

我必须为功课创建一个小型 2D Java 瓷砖游戏,我想知道如何通过按下按钮来移动对象。

更具体地说,我在矩阵中有一个带有“ i ”和“ j ”坐标的项目。在我按键盘上的 ENTER 后,我希望该项目向下移动 1 个位置( i + 1)。如果我一遍又一遍地按 ENTER,则对象会相应地向下移动。好像游戏将是 1 帧/秒。我怎样才能做到这一点?我对 Java 语言有点陌生,我在网上找不到答案。

(为了使用 GUI 制作游戏,我遵循了一些教程,并且正在使用 Slick2D 库。)

标签: javalwjglslick2d

解决方案


您想实现“更新”方法并根据按下的键从容器中读取输入。这里有一篇非常好的文章可以帮助你进行游戏,我认为这就是你想要实现的。以下是来自上述链接的示例代码:

public class MyGame extends BasicGame
{
    public MyGame()
    {
        super("My game");
    }
 
    public static void main(String[] arguments)
    {
        try
        {
            AppGameContainer app = new AppGameContainer(new MyGame());
            app.setDisplayMode(500, 400, false);
            app.start();
        }
        catch (SlickException e)
        {
            e.printStackTrace();
        }
    }
 
    @Override
    public void init(GameContainer container) throws SlickException
    {
    }
 
    @Override
    public void update(GameContainer container, int delta) throws SlickException
    {
        // You need to implement this function
        Input input = container.getInput();
        if (input.isKeyDown(Input.KEY_ENTER))
        {
             // ... your code here ...
        }
    }
 
    public void render(GameContainer container, Graphics g) throws SlickException
    {
    }
}

推荐阅读