[英]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.