-1
我一直在試圖用C++打印創建一個「1D射擊遊戲」。我的問題是我試圖在隨機時刻從列表中產生敵人,並且我也想隨機在敵人產生的地方(屏幕的左側或右側)隨機生成敵人。rand%以可預測的模式產生我所有的實體
這似乎沒有完全奏效,因爲我似乎從一側獲得了連續的敵人流,只有在所有來自左側的敵人都被殺死之後,右側的敵人才會出現。
我似乎從來沒有從左邊來的情侶和來自右邊的情侶在相似的時間。它總是一個或另一個。除了這個,一旦敵人產生了,其餘的似乎幾乎全部產生,突然之間沒有任何產卵。該模式似乎是可預測的和錯誤的。
這裏是我的方法是所謂的遊戲循環每次(遊戲循環負責,呼籲每個迭代函數srand(時間(NULL)),並調用此函數後。
void Enemy::spawnEnemy()
{
if (enemList.size() < 5)
{
if (!(rand() % 3))
{
if (!(rand() % 2))
{
Enemy * newEnemy = new Enemy(worldWidth, 'l');
enemList.push_front(newEnemy);
}
else
{
Enemy * newEnemy = new Enemy(0, 'r');
enemList.push_front(newEnemy);
}
}
}
}
非常感謝你提前。我真的希望有人能解決這個問題,因爲我一直在努力爲它找到一個答案!
的可能的複製[?srand()函數 - 只有一次,爲什麼叫它](http://stackoverflow.com/questions/7343833/srand-why-call-it-only-once) – LogicStuff
「遊戲循環負責在每次迭代中調用srand(time(NULL))」不這樣做 – MikeCAT