使用MIDP2 0開發遊戲 6 設計Clock

2021-03-31 08:56:29 字數 1195 閱讀 2305

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;

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()

}

參考:marshall:"game programming gems 3"

待續 :)

使用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...