clock負責提供乙個真實時間和乙個虛擬時間,真實時間從0開始按ms遞增,和硬體時鐘是同步的;虛擬時間也從0開始按ms遞增,但不一定和真實時間同步。
要獲得系統時間可以用system.currenttimemillies(),系統硬體有乙個計數器,當計算機啟動時,計數器從0開始每1ms加1,system.currenttimemillies()返回從開機到現在經過的ms。我們不需要知道時分秒,只需要乙個遞增的整數計時就可以了。
clock改自marshall "game programming gems 3"中的c++**,主要成員變數:
thistime:當前硬體時間,即system.currenttimemillies()
systemtime:遊戲的系統時間,即把thistime轉換為從0遞增的時間
virtualtime:虛擬時間,從0遞增,但和真實時間不同步
**如下:
待續 :)package game.engine.core;參考:marshall:"game programming gems 3"class clock
// 重置clock:
public void reset()
// 同步hardware clock:
private void update()
// 啟動clock:
public void start()
}
// 停止clock:
public void stop()
}
// clock是否執行:
public boolean isrunning()
// 開始frame:
public void beginframe()
}
// 將virtual time提前到frame結束:
public void advancetoend()
}
public int getvirtualtime()
public int getsystemtime()
public int getframestart()
public int getframeend()
public int getframecount()
}
使用MIDP2 0開發遊戲 6 設計Clock
clock負責提供乙個真實時間和乙個虛擬時間,真實時間從0開始按ms遞增,和硬體時鐘是同步的 虛擬時間也從0開始按ms遞增,但不一定和真實時間同步。要獲得系統時間可以用system.currenttimemillies 系統硬體有乙個計數器,當計算機啟動時,計數器從0開始每1ms加1,system....
使用MIDP2 0開發遊戲 5 遊戲核心
我們準備開始設計遊戲核心。通常,遊戲和桌面windows程式不同 掃雷等桌面遊戲除外 它不能依賴訊息驅動,因為遊戲通常只有乙個畫面,而且需要高速更新。因此,遊戲只能靠時鐘驅動。大部分遊戲都在乙個時鐘驅動下定時渲染一幀畫面。此外,遊戲需要接收使用者輸入,處理遊戲事件 比如碰撞檢測等 可能還需要ai計算...
使用MIDP2 0開發遊戲 3 新增背景和前景
上次我們已經讓坦克動起來了,現在我們準備給遊戲新增背景和前景。上次討論了用sprite實現動畫,其實背景和前景也是用sprite實現的,我們準備一幅背景和一幅前景 注意背景可以不透明,但前景一定要處理成透明的png格式 以上均為jpg截圖,請自行用photoshop等轉換 修改tankgamecan...