2014-02-24 17 views
0

我目前正在開發一個java項目。這是一個基本的RTS模擬器。我現在擁有的問題是與定時器有關的問題。Java僞定時器

例如:

我開始0:00秒。

營房需要25秒的時間來建造。

我需要存儲操作的開始時間和結束時間。所以它存儲了一些類似事件「BARRACK 0:00 0:25」。

我沒有問題在實時做 - 但它不是我想要的。

我希望它能夠在僞實時刻度上自動創建開始時間戳和結束時間戳(這樣我就可以在執行時獲得所有時間長度的所有日誌)。我知道的正常數據類型沒有幫助。

任何人有什麼建議可以用來創建這種類型的僞時間軸?

+0

你爲什麼不使用Swing Timer?或者只記錄事件發生的時間,然後在遊戲循環中檢查該時間? –

回答

0

我會爲每個操作啓動一個新線程。

,並採取在一個日期格式或日曆形式

Calendar.getInstance().get(Calendar.MILLISECOND); 

** or ** 

long millis = System.currentTimeMillis() 

的barrak類必須具有對startBuilding自己的長期變量和endBulding當前時間戳記。

這樣,營房的每個實例都會有正確的時間戳。

希望我正確理解你,這有助於你。

祝您有美好的一天。

1

你的問題不清楚。

你是說你想要一個假時鐘來保持時間,但速度比計算機的真實時鐘快嗎?

Java有兩個很好的日期 - 時間框架:

  • 喬達時間(第三方庫,流行)
  • java.time包在Java中8(由喬達時間的啓發,由JSR 310定義)

這兩個框架都有一個可插拔的「時鐘」類。您可以替換使用計算機物理時鐘芯片的默認實現。您的替代品可以在不同的剪輯中移動時間。