Javascript Canvas,无法绘制多个图像

标签 javascript canvas

对于一个学校项目,我需要制作一种“Invader”游戏。

实际上,我在绘图方面遇到了一些问题。 它适用于一张图片,但不适用于多张图片。 另外,如果我尝试仅绘制矩形而不是图片,则它不起作用。

所以我猜我的代码有问题,但我不知道如何找到它。

由于我的代码有多个库,因此我将其上传到服务器: 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);
}

最佳答案

只看到 1 个敌人的原因是因为您对 x 和 y 坐标使用了错误的变量。您使用了用来创建敌人的变量enemy

将 moveEnemy 函数中的最后一行更改为

images.enemy.draw(CONTEXT, enemy.posX, enemy.posY);

images.enemy.draw(CONTEXT, myEnemy.posX, myEnemy.posY);

关于Javascript Canvas,无法绘制多个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30867871/

相关文章:

javascript - HTML5 Canvas 围绕圆点旋转多个文本项

javascript - 合并两个 Canvas 。将第一个放在第二个上

html - 您可以使用 Canvas 获取页面的 "screenshot"吗?

javascript - 由于某种原因,PIXI js Canvas 像素保存为黑色

javascript - 用虚线连接的堆积柱点 highcharts

javascript - React - 登录提交按钮以呈现新页面

java - `canvas.drawCircle`方法的半径是dp单位吗?

java - 在 Java/android Canvas 上创建具有深度/3D 外观的形状

javascript - 使用 webpack 将 Assets 文件夹推送到公共(public)目录

javascript - Express 路由器未安装