我正在制造一个像太空入侵者一样简单的二维射击游戏,我想只是水平地移动我的“敌人”,以相同的速度从一侧移动到另一侧。 我怎么能这样做?
我已经使用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;
}
答案 0 :(得分:0)
你需要的是一个游戏循环。例如,一个永不结束的while循环(无限循环),如果需要,它会更新你的英雄位置。
while (true) {
// insert statement if move is needed here
move();
}
这是一个非常基本的例子,但它应该清楚。
由于我假设您使用的是Java,因此您可以查看一些游戏框架,例如jgame。这些框架采用了类似的方法,使其更加舒适。
编辑:
请注意,处理器现在运行得非常快,这个无限循环将在很短的时间内运行(例如每秒1000次以上)。因此,您可能必须限制此循环的执行时间,否则您的英雄将更快地在屏幕之外。
你可以通过睡眠或类似的东西来实现这一点。我提到的这些框架也将受到这种限制。