【问题标题】:How to change the coordinates of an object with the press of a key?如何通过按键更改对象的坐标?
【发布时间】:2021-04-05 19:48:03
【问题描述】:

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

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

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

【问题讨论】:

  • 您可以使用键绑定或键侦听器来执行此操作,然后只需通过键操作编辑数组中项目的ij 坐标:stackoverflow.com/questions/23486827/…
  • 论坛上有很多关于这方面的信息,请多做些研究。当您提供一些不起作用的代码时,我们可以为您提供帮助。目前,您有多个问题

标签: java lwjgl slick2d


【解决方案1】:

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

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
    {
    }
}

【讨论】:

  • 您能否展示您所描述内容的任何示例,或者请编辑您的问题以包含文章中的关键信息或概念。外部链接往往会随着时间的推移而中断,答案可能会变得毫无帮助。
  • 更新了我的答案。 @ChimiChumi 如果这有帮助,您可以将其标记为已接受的答案。谢谢。
  • 是的,抱歉,我是新手,找不到可以将问题标记为已解决的位置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-28
  • 1970-01-01
  • 1970-01-01
  • 2013-03-18
  • 2015-09-20
  • 2015-10-21
  • 1970-01-01
相关资源
最近更新 更多