gpt4 book ai didi

java - 如何定期产生敌人

转载 作者:行者123 更新时间:2023-11-30 09:00:18 25 4
gpt4 key购买 nike

我正在尝试创建一个游戏,让敌人随机生成并向屏幕上的某个点移动。我的问题是程序等待它们产卵并开始移动它们。我希望它们在产卵时开始移动,并在每次产卵之间有短暂的休息。

下面是让它们移动的两种主要方法:

public void newLevel() {
runOnUiThread(new Runnable(){
public void run() {
int i = 0;
while( i < 10){
addSpeks();
i++;
try {
Thread.sleep(2000);
}
catch(InterruptedException ie){
ie.printStackTrace();
}
}
}
});
}

public void addSpeks() {
Spek newSpek = new Spek(this);

setRandomRegion();

newSpek.setX(spawnX);
newSpek.setY(spawnY);

relativeLayout.addView(newSpek);
spekList.add(newSpek);
newSpek.setOnClickListener(spekListener);
newSpek.animate().x(finalX).y(finalY).setDuration(8000);
}

Spek 是一个简单的类,它扩展了一个 ImageView 和 setRandomRegion() 在屏幕边界上选择一个随机的 x、y 坐标。为了简单起见,我在 while 循环中有一个计数器,但我想最终将它移到一个有条件的无限循环中,只有当你输掉游戏时它才会停止。

感谢您的帮助,如果问题需要进一步说明,请告诉我。

最佳答案

你必须在线程结束时重新运行它,在 Android 中可以这样做:

首先,创建您的 Runnable:

private Runnable SpawnEnemies = new Runnable(){
public void run(){
//Your code here...

spawnHandler.postDelayed(2000, this);
}
};

然后,创建一个处理程序,它将是运行线程(或者,好吧,runnable)的类,并像这样启动你的 Runnable:

Handler spawnHandler = new Handler();
spawnHandler.post(new SpawnEnemies());

这将每 2 秒运行一次,您还可以添加一个 boolean 值或类似的东西来手动停止循环。

关于java - 如何定期产生敌人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26860831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com