可以說我想做一個循環或打印出來的東西,例如,「Mario」每秒。我怎樣才能做到這一點?似乎無法找到任何教導任何地方的好教程= P我怎樣才能每秒做點什麼? [LibGDX]
回答
您可以使用java.util.Timer。
new Timer().scheduleAtFixedRate(task, after, interval);
任務是要執行的方法,之後的時間,直到第一次執行的數量和間隔是上述任務的執行之間的時間。
還有一個沒有時間的替代方法,就是總結達到1000以上的增量時間,然後執行該方法,並重新設置定時器。 (在演員或演員的行爲中這樣做) – BennX
由於@BennX表示你可以總結你在渲染方法中的delta
時間或通過調用Gdx.graphics.getDeltaTime();
得到它。如果它大於1
(delta
是float
,給出自上一幀繪製以來的秒數),則可以執行您的任務。通過使用timer = 0;
來重置定時器,而不是使用timer -= 1
來減少定時器,從而使您的任務得到更準確的執行。所以如果1個任務開始後1.1 seconds
,原因真的大delta
下一次它被執行後大約0.9
秒。 如果您不喜歡delta
時間解決方案,則可以使用Libgdx計時器,而不是java.util.Timer。 An的它例如:
Timer.schedule(new Task(){
@Override
public void run() {
doWhatEverYouWant();
}
}
, delay // (delay)
, amtOfSec // (seconds)
);
一個延遲的delay
和每seconds
秒然後這之後執行doWhatEverYouWant()
方法。您也可以給它一個第三個參數numberOfExecutions
,告訴它應該執行任務的頻率。如果你不給這個參數,這個任務將被永久執行,直到它被取消。
我使用了libgdx的TimeUtils在1.5秒後更改了我的splashscreen。該代碼是這樣的:
初始化:
long startTime = 0;
在創建方法:
startTime = TimeUtils.nanoTime();
返回系統計時器的當前值,在納秒。
在更新或渲染方法:
if (TimeUtils.timeSinceNanos(startTime) > 1000000000) {
// if time passed since the time you set startTime at is more than 1 second
//your code here
//also you can set the new startTime
//so this block will execute every one second
startTime = TimeUtils.nanoTime();
}
- 退房的libgdx API:TimeUtils
出於某種原因,我的解決方案seemes更優雅,我認爲那些在這裏:)
提供- 1. 我怎樣才能知道這是做什麼?
- 2. 我怎樣才能看到JVM在做什麼?
- 3. 我怎樣才能每15秒鐘刷新頁面?
- 4. 我怎樣才能每5秒發送一個請求在jmeter
- 5. Netlogo我怎樣才能使每1000個蜱發生什麼事
- 6. 我怎樣才能做的Symfony2
- 7. 我怎樣才能做到在web.py
- 8. 我怎樣才能做M2M分頁Django
- 9. 我怎樣才能做多個條件?
- 10. 我怎樣才能稍後做點什麼,但現在讓蘋果迴歸?
- 11. 我想重寫FXMLLoader。我怎樣才能做到這一點?
- 12. 我怎樣才能節點,我從XML
- 13. 我怎樣才能
- 14. 我怎樣才能
- 15. 我怎樣才能
- 16. 我怎樣才能
- 17. 我該怎麼做才能隱藏按鈕5秒鐘
- 18. 什麼是CLASS:wxWindowNR在AutoIt中,我怎樣才能點擊控件?
- 19. 我怎樣才能爲每個外鍵
- 20. 我怎樣才能看到每一行?
- 21. 我怎樣才能做每月訂閱信用卡賬單?
- 22. 我怎樣才能做到這一點的設計
- 23. 我怎樣才能做到這一點Oracle查詢
- 24. 正則表達式 - 我怎樣才能做到這一點?
- 25. 我怎樣才能做到這一點與asp.net mvc路由?
- 26. 我怎樣才能在laravel做到這一點查詢
- 27. Swift - 我怎樣才能使用uicollectionview來做到這一點?
- 28. 我怎樣才能做到這一點?(僅限星號圖案)
- 29. 我怎樣才能做到這一點查詢與NHibernate
- 30. 我怎樣才能做到這一點的圖像
http://stackoverflow.com/questions/12908412/print-hello-world-every-x-seconds? – snrlx
如果您想獲得最好的Android,請使用AsyncTask,線程或服務。但如果你只是想打印出「你好馬里奧」或其他東西,谷歌更多。 – 3yanlis1bos