如何通过按键更改对象的坐标?
How to change the coordinates of an object with the press of a key?
我必须为作业创建一个小型 2D Java 拼贴游戏,我想知道如何通过按下按钮来移动对象。
更具体地说,我有一个在矩阵中具有“i”和“j”坐标的项目。在我按下键盘上的 ENTER 后,我希望该项目向下移动 1 个位置 (i + 1)。如果我一遍又一遍地按 ENTER,对象就会相应地向下移动。好像游戏会是 1 frame/second。我怎样才能做到这一点?我是 Java 语言的新手,我无法在网上找到答案。
(为了使用 GUI 制作游戏,我遵循了一些教程并使用了 Slick2D 库。)
您想实现“更新”方法并根据按下的键从容器中读取输入。有一篇非常好的文章 here 可以帮助您继续游戏,我认为这就是您要实现的目标。这是上面 link:
的示例代码
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
{
}
}
我必须为作业创建一个小型 2D Java 拼贴游戏,我想知道如何通过按下按钮来移动对象。
更具体地说,我有一个在矩阵中具有“i”和“j”坐标的项目。在我按下键盘上的 ENTER 后,我希望该项目向下移动 1 个位置 (i + 1)。如果我一遍又一遍地按 ENTER,对象就会相应地向下移动。好像游戏会是 1 frame/second。我怎样才能做到这一点?我是 Java 语言的新手,我无法在网上找到答案。
(为了使用 GUI 制作游戏,我遵循了一些教程并使用了 Slick2D 库。)
您想实现“更新”方法并根据按下的键从容器中读取输入。有一篇非常好的文章 here 可以帮助您继续游戏,我认为这就是您要实现的目标。这是上面 link:
的示例代码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
{
}
}