gpt4 book ai didi

Javascript:此代码片段的作用和错误代码 Uncaught TypeError: allEnemies.forEach 不是函数

转载 作者:行者123 更新时间:2023-11-28 15:13:42 25 4
gpt4 key购买 nike

我正在努力完成一个简单的 Canvas 游戏。我收到此错误:

未捕获类型错误:allEnemies.forEach 不是函数

为什么我会收到此错误?

我在下面展示了我如何声明所有敌人。根据说明,allEnemies 应该是一个对象数组。

是我对 allEnemies 的声明错误,还是对象 Enemy 声明错误?

这是 Enemy 的声明,我认为他们正在尝试声明一个对象(我从未见过这样的对象声明)我认为这是 IIFE 正确的吗?

var Enemy = function() {
// Variables applied to each of our instances go here,
// we've provided one for you to get started

// The image/sprite for our enemies, this uses
// a helper we've provided to easily load images
this.sprite = 'images/enemy-bug.

这是整个 app.js 文件:

    // Enemies our player must avoid
var Enemy = function() {
// Variables applied to each of our instances go here,
// we've provided one for you to get started

// The image/sprite for our enemies, this uses
// a helper we've provided to easily load images
this.sprite = 'images/enemy-bug.png';
}

// Update the enemy's position, required method for game
// Parameter: dt, a time delta between ticks
Enemy.prototype.update = function(dt) {
// You should multiply any movement by the dt parameter
// which will ensure the game runs at the same speed for
// all computers.
}

// Draw the enemy on the screen, required method for game
Enemy.prototype.render = function() {
ctx.drawImage(Resources.get(this.sprite), this.x, this.y);
}

// Now write your own player class
// This class requires an update(), render() and
// a handleInput() method.
var Player = function() {
// Variables applied to each of our instances go here,
// we've provided one for you to get started


this.sprite = 'images/char-pink-girl.png';
}

// Now instantiate your objects.
// Place all enemy objects in an array called allEnemies
// Place the player object in a variable called player
var allEnemies = [];
allEnemies = Enemy;

var player = Player;


// This listens for key presses and sends the keys to your
// Player.handleInput() method. You don't need to modify this.
document.addEventListener('keyup', function(e) {
var allowedKeys = {
37: 'left',
38: 'up',
39: 'right',
40: 'down'
};

player.handleInput(allowedKeys[e.keyCode]);
});

这是给我错误类型的代码行:

allEnemies.forEach(function(enemy) {

这是函数声明的其余部分:

function updateEntities(dt) {
allEnemies.forEach(function(enemy) {
enemy.update(dt);
});
player.update();
}

最佳答案

第 1 行 allEnemies是一个数组。
下一行变成 Enemy .

var allEnemies = [];
allEnemies = Enemy;

Enemy是一个函数。
allEnemies现在是一个函数。

Function.prototype.forEach 是 undefined

关于Javascript:此代码片段的作用和错误代码 Uncaught TypeError: allEnemies.forEach 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35103037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com