1
A
回答
0
說你的遊戲主循環是一樣的東西:
this.addEventListener(Event.ENTER_FRAME, gameLoop, false, 0, true);
var _timer = 0; // starts as zero
const WORLD_TIME_FACTOR:Number = 2;
function gameLoop(e:Event):void {
// all your game logic happens here
_timer++;
}
function getWorldTime():Number {
return (_timer/stage.frameRate) * WORLD_TIME_FACTOR;
}
// later (you can adjust WORLD_TIME_FACTOR to be anything, 2 would indicate that the
// game world happens twice as quick as in real life (like your examples)
//
trace(getWorldTime()); // At 3 seconds real world, would trace 6
trace(getWorldTime()); // At 33 seconds real world, would trace 66
你會然後格式化這個數字到分鐘的東西,如:
const div60:Number = 1/60;
const div120:Number = 1/60/60;
function format_time(value:Number):String {
// x >> 0 is the same as int(x) but quicker
var minutes:String = String((value* div60 >> 0) % 60);
minutes = (minutes == "60") ? "00" : minutes;
minutes = (minutes.length == 1) ? "0" + minutes : minutes;
var seconds:String = String(value% 60);
seconds = (seconds.length == 1) ? "0" + seconds : seconds;
return (value* div120 >> 0) + ":" + minutes + ":" + seconds;
}
所以最後你會
trace(format_time(getWorldTime())); // At 72 (1 minute, 12 secs) seconds real world, would trace 00:02:24
0
下面的代碼會給你自從1970年1月1日以來傳遞的毫秒數
對這個函數後綴的任何調用都會給你一個以毫秒爲單位的時間。
從原始時間減去該值,並且已經過了多少毫秒。
知道您現在可以考慮您的轉化。 EX6秒=1分鐘
var startingTime:Number = Date.parse(new Date());
trace(startingTime);
0
你必須要記住這一時刻的時間戳和在比賽日時,您的遊戲內時刻開始,然後計算出在遊戲日期給出時刻:
milliseconds_of_double_time = moment.timestamp - start_timestamp
ingame_date = date_from_timestamp(start_date.timestamp + milliseconds_of_double_time * 2)
相關問題
- 1. UTC和世界時間
- 2. 世界時間腳本
- 3. 轉換世界時間
- 4. 解析日期時間到世界時間C#
- 5. 通過時區獲取世界時間
- 6. 顯示時間世界的夏令時
- 7. 在PHP或JavaScript中世界時鐘API
- 8. PHP世界時間BST更新
- 9. 不可改變的世界時間
- 10. 你好世界不會編譯「值或構造沒有定義」
- 11. i18n世界您好世界
- 12. 我的世界自定義發射器 - 鍛造mod加載
- 13. 高地圖:世界地圖上的自定義數據標籤
- 14. 真實世界中使用自定義.NET屬性
- 15. 構建2D世界的自定義組件
- 16. 使用自定義着色器在世界風的Java/JOGL
- 17. 自定義標記位置的世界地圖 - ASP.NET
- 18. Flash AS3定義聲音結束時間
- 19. 排序自定義日期時間C#
- 20. 記錄時間自定義屬性C#
- 21. C#自定義時間格式
- 22. ActionScript自定義命名空間界面
- 23. 自定義時間間隔
- 24. 我的世界自定義啓動器,如何跳過主菜單並直接進入遊戲世界
- 25. 自定義界面
- 26. 聲納 - 自定義時間更改或時間範圍
- 27. 世界空間視圖向量和世界點之間的交集
- 28. 世界空間相機空間
- 29. 在.NET世界中開始學習C#或C++會更好嗎?
- 30. AS3:構造自定義類
注意,在閃光,你不能依靠'stage.frameRate'和計數幀,真的。 'frameRate'對玩家來說至多是一個暗示你想要的最大幀數的暗示。但是不能保證你的swf會以30 FPS的精確度運行。你最好計算三角洲。一個方便簡單的函數是getTimer()。捕捉初始時間,然後,當時鍾再次輸入時(輸入幀,計時器,不管),調用getTimer並將返回的值減去前一個值以獲得流逝的時間。 – 2011-04-19 01:31:58
是的,的確如此。 – Chris 2011-04-19 01:36:24
非常感謝!它真的使用Timer偵聽器工作! – ShadowG 2011-05-17 01:26:56