私が作っているゲームがあります: http://www.taffatech.com/DarkOrbit.html
私ができるようにしたいのは、一定数の敵を倒すとレベルアップすることです。この部分は機能していますが、レベルアップ時にスポーン量も増やしてほしいです。
私のループ機能では:
function Loop()
{
if (isPlaying == true)
{
updateLevel(); //this updates the level but it calls it every frame which might be bad.
Player1.draw();
drawAllEnemies();
updateStats();
requestAnimFrame(Loop);
}
更新レベル関数:
function updateLevel()
{
if(Player1.enemiesKilled <3)
{
level = 1;
}
else if(Player1.enemiesKilled > 3 && Player1.enemiesKilled <= 9)
{
level = 2;
}
else if(Player1.enemiesKilled > 9 && Player1.enemiesKilled <=18)
{
level = 3;
}
else if(Player1.enemiesKilled > 18 && Player1.enemiesKilled <= 38)
{
level = 4;
}
else if(Player1.enemiesKilled > 38 && Player1.enemiesKilled <= 70)
{
level = 5;
s
}
else if (Player1.enemiesKilled > 120)
{
level = 6;
}
if(level == 1)
{
spawnAmount = 1;
}
else if(level == 2)
{
spawnAmount = 2;
}
else if(level == 3)
{
spawnAmount = 3;
}
else if(level == 4)
{
spawnAmount = 4;
}
else if(level == 5)
{
spawnAmount = 5;
}
else if(level == 6)
{
spawnAmount = 6;
}
}
スポーン敵機能:
function spawnEnemy(number) //total enemies starts at 0 and every-time you add to array
{
for (var x = 0; x < number; x++)
{
enemies[enemies.length] = new Enemy();
}
}
私の初期:
function init()
{
spawnEnemy(spawnAmount);
drawMenu();
sndIntro.play();
document.addEventListener('click', mouseClicked ,false);
}
追加してみました: spawnEnemy(spawnAmount); updateLevel関数でスポーン量のグローバル変数を変更した後ですが、これがフレームごとに呼び出されると、何百もの敵が私に向かって飛んでいきます。どうすればこの問題を解決できますか?
このようなことを試してみると、何百もの敵が生成されます。これは、フレームごとに呼び出されるためだと思います。
if(level == 1)
{
spawnAmount = 1;
spawnEnemy(spawnAmount);
}