对于学校项目,我需要制作一种“入侵者”游戏。
实际上,我在绘图方面遇到了一些问题。 它适用于1张图片,但不适用于多张图片。 此外,如果我尝试仅绘制矩形而不是图片,则它不起作用。
所以我猜我的代码有问题,但我不知道如何找到它。
由于我的代码有多个库,我将其上传到服务器: Link to the project
我绘制敌人的脚本源代码(只绘制一个,而不是全部):
function moveEnemy(myEnemy, indexEnemy) {
myEnemy.posY += 1;
if( myEnemy.posY >= GAME_HEIGHT )
{
myEnemy.posX = _.random(0, 600 );
myEnemy.posY = _.random(0, -1000);
player.score -= 2;
}
// check collision with player
if (myEnemy.posX < player.posX + player.size && myEnemy.posX + myEnemy.size > player.posX && myEnemy.posY < player.posY + player.size && myEnemy.size + myEnemy.posY > player.posY) {
loadGame();
}
// check collision with bullet
_.map(tabShot, function(myShot, index) {
// check collision with shot
if (myShot && myEnemy.posX < myShot.posX + myShot.sizeX && myEnemy.posX + myEnemy.size > myShot.posX && myEnemy.posY < myShot.posY + myShot.sizeY && myEnemy.size + myEnemy.posY > myShot.posY)
{
myEnemy.posX = _.random(0, GAME_WIDTH-myEnemy.size);
myEnemy.posY = _.random(0, -1000);
player.score += 3;
_.pull(tabShot, myShot);
return true;
}
return false;
});
// check collision with player
if (myEnemy.posX < player.posX + player.size && myEnemy.posX + myEnemy.size > player.posX &&
myEnemy.posY < player.posY + player.size && myEnemy.size + myEnemy.posY > player.posY) {
loadGame();
}
images.enemy.draw(CONTEXT, enemy.posX, enemy.posY);
}
答案 0 :(得分:1)
只看到1个敌人的原因是因为你在x和y坐标上使用了错误的变量。您使用的是用于制造敌人的变量enemy
。
从
更改moveEnemy函数中的最后一行images.enemy.draw(CONTEXT, enemy.posX, enemy.posY);
到
images.enemy.draw(CONTEXT, myEnemy.posX, myEnemy.posY);