javascript - Gameloop 没有持续运行以使我的敌人移动
问题描述
我正在制作一个带有敌人类的游戏,它可以容纳一堆敌人,我只需要调用enemy_spawn.enemy1(number_of_enemies)
. 我的敌人正在打印,但只有 1 个出现,而且它根本没有移动(目前它只是应该水平移动)。
export default class Enemies {
constructor() {
this.enemy1_list = [];
}
enemy1(number_of_enemies) {
var i;
var j;
for (i = 0; i < number_of_enemies; i++) {
var ex = getRndInteger(100, 200);
var ey = getRndInteger(60, 110);
this.enemy1_list[i] = [ex, ey];
}
for (j = 0; j < number_of_enemies; j++) {
// var ex, var ey = enemy1_list[j];
var pos = this.enemy1_list[j];
img.onload = () => {
ctx.drawImage(img, pos[0], pos[1]);
pos[0]++;
};
}
}
}
我的主要 JavaScript 代码
import Enemies from "/src/enemies.js";
let canvas = document.getElementById("gamescreen");
let ctx = canvas.getContext("2d");
const GAME_WIDTH = 1000;
const GAME_HEIGHT = 600;
ctx.fillStyle = "lightblue";
ctx.fillRect(800, 0, 200, 600);
//dollar image here
const img = new Image();
img.src = "/img/extras/dollar.png";
img.onload = () => {
ctx.drawImage(img, 792, 0);
};
//lives image here
const img2 = new Image();
img2.src = "/img/extras/lives.png";
var widthimg2 = 40;
var heightimg2 = 40;
img2.onload = () => {
ctx.drawImage(img2, 805, 70, widthimg2, heightimg2);
};
let enemy1_spawn = new Enemies();
function gameloop() {
enemy1_spawn.enemy1(3);
requestAnimationFrame(gameloop);
}
gameloop();
解决方案
for (j = 0; j < number_of_enemies; i++)
应该是
for (j = 0; j < number_of_enemies; j++)
增加 j 而不是 i
推荐阅读
- c# - C#流利验证
- java - 排序图
按日期(值)使用流 Java - office-js - 固定的 Outlook Web 插件:ItemChanged 事件停止到达
- javascript - 如何为每个 v-card 创建动画
- hyperlink - mailto 中的 Html 超链接正文选项不支持某些特殊字符,例如 '&'
- java - 如何将 JavaFX 11 项目导出到 Jar 中?
- firebase - 如何在 CircleCI 的不同步骤中访问已安装的 firebase-tools
- javascript - 如何打开和关闭
- javascript - Geolocation Heading API 实际上没有测量航向?
- python - 无法运行 .exe 文件:ImportError: DLL load failed: 找不到指定的过程