我试图创建一个游戏,敌人将随机产卵,并向屏幕上的一个点移动。我的问题是程序等待它们产卵,然后它们开始移动它们。我希望它们在产卵时开始移动,并在每个产卵之间有一个短暂的Rest。
下面是让它们移动的两个主要方法:
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循环中有一个计数器,但我希望最终将其移动到一个条件无限循环中,只有在你输掉游戏时,它才会停止。
感谢您的帮助,如果问题需要进一步澄清,请告诉我。
newLevel()
方法完全在UI线程和线程上运行。睡眠(2000)
让wait成为你的UI线程,每次迭代2秒。要添加这种延迟,可以使用处理程序:
将处理程序声明为成员类
final Handler mHandler = new Handler();
int i = 0;
并相应地更改新级别:
public void newLevel() {
mHandler.postDelayed(new Runnable(){
public void run() {
if (i > 10) {
mHandler.removeCallbacks(this);
return;
}
addSpeks();
i++;
mHandler.postDelayed(this, 2000);
}
}), 2000);
}
另一种选择是将Runnable实例声明为最终成员,以避免每次调用newLevel时都将其安装。检查打字错误
完成后,你必须重新运行你的线程,在Android中可以这样做:
首先,创建可运行的:
private Runnable SpawnEnemies = new Runnable(){
public void run(){
//Your code here...
spawnHandler.postDelayed(2000, this);
}
};
然后,创建一个处理程序,它将是运行线程(或者,好吧,运行)的类,并像这样启动您的
Runnable
:
Handler spawnHandler = new Handler();
spawnHandler.post(new SpawnEnemies());
这将每2秒运行一次,您还可以添加一个布尔值或类似的东西来手动停止循环。
我正在做一些测试来理解@Transactional在Spring 3中的行为。虽然,它没有像我预期的那样工作。如果有一个方法Propagation.REQUIRED调用另一个方法Propagation.REQUIRES_NEW,第二个方法是否能够从数据库中检索第一个方法插入的数据? 编辑:我在@Transaction中看到未提交的更改,这是我的(看起来很讨厌的)代码。
我自己找到了一种从熊猫数据帧中删除nan行的方法。给定一个包含nan值的列为的数据帧,是否有更优雅的方法来删除列中包含nan值的每一行?
我对改装《我的世界》是新手,我想知道如何改变暴民产卵率。例如,假设我们想产生大量的Enderman。 到目前为止,我已经在: 这意味着在大多数生物群落中,尽管很少产卵(10是体重,爬行动物和蜘蛛有100)。 我知道这个然后被到,等。我的结论是,我需要改变生物群落以改变产卵率。 我可以使用或。我在这里看到两种方法: 完全替换生物群落图。不幸的是,它的方法是,因此我无法添加新的生物群落来取代现有的生物
问题内容: 我正在使用Pygame制作Python游戏,目前正在研究Hitbox。每当玩家与敌人碰撞时,程序应暂停(设置)。 当我注释掉所有敌人的移动(第56-64行)时,它只会“起作用”,但这显然不是最佳选择。我已经读过有关Pygame拥有自己的Hitbox碰撞系统的信息,但无法弄清楚。 游戏代码: 您知道解决办法吗?有没有比我现在拥有的方法更好的选择了? 问题答案: 我建议使用对象,或者使用或
如何在Liferay的7.2自定义主题中插入和使用字体awesome 4? 我在Liferay的门户开发中看到,通过选择:控制面板→配置→系统设置→第三方,我可以找到一个字体真棒选项,但该选项不在我的面板中。 在本教程中还解释了如何使用字体真棒3,但没有关于版本4。
当玩家或敌人被击中时,我希望他们的精灵变成红色。从本质上讲,我想要在精灵上显示透明的红色效果。皮游戏是否提供了一种方法来做到这一点?(我使用多个图像,因为角色是动画的,所以创建一个红色的精灵,只是闪烁而不是正常的子画面是行不通的)