0

我正在制作一个像太空入侵者一样的简单 2d 射击游戏,我只想水平移动我的“敌人”,以相同的速度从一侧移动到另一侧。我怎样才能做到这一点?

我已经用 a 为我的“英雄”做了这件事,KeyListener但我不知道如何自动完成。

这里有一些代码可能会有所帮助。

public SimpleEnemy(String linkimg, int x, int y, int life) {
    super(linkimg, x, y);
    this.life=life;
    this.isMoving=false;
}

public void move() {
    x += dx;
    y += dy;
}
4

1 回答 1

0

你需要的是一个游戏循环。例如一个永不结束的while循环(endless-loop),如果需要,它会更新你的英雄位置。

while (true) {
    // insert statement if move is needed here
    move();
}

这是一个非常基本的例子,但它应该让事情变得清晰。

由于我假设您使用的是 java,因此您可以查看一些游戏框架,例如jgame。这些框架采用类似的方法,使其使用起来更加舒适。

编辑:

请注意,这些天处理器的运行速度非常快,并且这种无限循环将在很短的时间内非常频繁地运行(例如每秒 1000 次以上)。所以你可能不得不限制这个循环的执行时间,否则你的英雄会更快地出现在屏幕之外。

您可以通过睡眠或类似的方式来实现这一点。我提到的这些框架也会有这个限制。

于 2012-06-18T08:34:57.990 回答