我認爲它是有意義的使用WebWorkers了比賽,但,是的,這將意味着你將不得不繼續它可以轉換成可以傳遞給webworkers有效的JSON遊戲狀態對象。在brightside上,你也可以在這些webworkers中放置大量的內在數據。
var gameState = {
sprites: {
{
type: 'rifleman', // damage, accuracy, speed etc set inside appropriate webworker.
owner: 'playerA',
x: 100,
y: 100,
z: 0,
level: 1, // used to fetch modifiers to dmg, acc, speed etc.
},
{
// each sprite it's own state obj.
}
}
}
然後設置了巡邏和可能的事件webworker(你可以調用一個webworker內的其他webworkers以及和過程巡邏事件)
var patrolWorker = new WebWorker('patrolWorker');
patrolWorker.onmessage = function(e){
render(e.data); // your render function, can ALSO be a webworker if you like ;)
}
patrolWorker.postMessage(gameState.sprites);
它必須由現在變得清晰,即使用WebWorkers實際上是一個非常重要的架構決策,如果你想使用它,它會涉及到很多重構。沒有重構,我懷疑它對你有用。
我不知道的情況下:如果問題是非常具體的遊戲,它可能是一個好主意,請在http://gamedev.stackexchange.com – 2010-08-08 16:03:25