您需要更改您要添加的硬幣和障礙的方式!我建議每個使用一個計時器。 Atm你在每一幀都增加了一大堆,計算重疊會佔用太多資源!並把它們放在array
或更好的vector
!我會推薦使用object Pool
以及!
所以限制硬幣和障礙可存在,如5個左右的大寫金額。然後當它們離開屏幕或收集時,將它們從陣列/矢量中移除!那麼當你添加新的東西時,你可以檢查數組/向量允許的值是什麼!
當你得到你的數組時,你可以將它傳遞給randomRange()
函數並將這些值分解! 會看起來像這樣!不是testet!
function randomRange (min:Number, max:Number, exclude:Array = null):int
{
var val:int = (min + Math.random() * (max - min)) >> 0;
if (exclude)
{
for (var i:int = 0; i < exclude; i++)
{
while ((val < exclude[i].x + exclude[i].width) && (val > exclude[i].x))
{
val = (min + Math.random() * (max - min)) >> 0;
}
}
}
return val;
}
它還是相當exspensive性能明智的。但只有幾個對象,你應該罰款
等待我會嘗試編碼。謝謝BTW :)所以首先我必須做一個數組..對嗎? – HeOne 2013-03-02 07:57:03
Waaaaaaaaa我無法理解! :((請幫助我M4tchB0X3r。截止日期已經很近了,請幫助我pleasssssssssse – HeOne 2013-03-03 16:18:14