[英]Libgdx Game: Delay Action Based on Score Count
我在Java领域还很新,需要一些有关当前正在开发的游戏的帮助。 我已经实现了游戏的核心,即球从屏幕顶部掉落,并且用户控制平台将球反弹到屏幕的右侧。 如果玩家成功,则得分。 我已经实现了弹跳球,平台,得分和各种状态的代码。
我坚持的事情是根据得分控制落下的球的数量。 我已经对该算法有一个大概的了解。 无需赘述,它的内容如下:
public class BallContainer{
public ArrayList<Ball> balls;
public BallContainer(ArrayList<Ball> balls){
this.balls = balls;
}
public void drop(int howMany){
//code to activate the gravity of "howMany" random balls with a .5 second delay between them
}
public class MainGame{
public void update(float dt){
//check score and drop a selection of balls with random seconds of delay between each group of balls dropped at a time
}
}
我已经知道了多少个球以及多少随机延迟会取决于得分。 我只是想推迟行动。 我知道我们可以使用java.util.Timer和TimerTask,但我也听说libgdx也有一些内置的延迟方法。 无论如何,任何帮助将不胜感激。
谢谢。
您可以只创建一个新线程,在其中放置一个标志,然后休眠新创建的线程,并在休眠完成后-将您的标志设置为true。
因此,如果您要休眠主线程,我们的游戏将不会冻结。
您可以使用libgx Timer类提供一定延迟后发生的操作。
这是一个例子-
Timer.schedule(new Task() {
@Override
public void run() {
//create new balls here or do whatever you want to do.
}
}, DELAY_TIME_IN_SECONDS);
这里发生的是您正在调用Timer
类的静态方法,该方法称为schedule,该方法将Task
和float
delaySeconds作为参数。
现在,作为参数,您正在创建一个新的Anonymous内部类对象,因为Task
是一个抽象类。 在匿名内部类对象中,您将覆盖run方法并放入您希望它执行的操作。
将以上代码片段放在您要创建新球或执行某些操作的地方。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.