以下是我的代码,
function hostile(x, y) {
this.speed = 1;
this.health = 100;
this.x = x;
this.y = y;
this.height = 32;
this.width = 32;
this.isDead = false;
this.direction = 0;
this.move = function(){
context.clearRect(0,0,canvas1.width,canvas1.height);
if (this.x > canvas.width - 64) {
this.y += 10;
this.direction = 0;
}
if (this.x < 0) {
this.y += 10;
}
if (this.direction === 1) {
this.x += this.speed;
} else {
this.x -= this.speed;
}
if (this.x < 0) {
this.direction = 1;
}
if (this.y > 420) {
//this might have to be changed
this.x = 600;
}
}
};
//CREATING AN INSTANCE OF HOSTILE, THIS ISN'T WORKING FOR MULTIPLE INSTANCES, BUT WHY?
var hostile = new hostile(20,20);
var hostileA = new hostile(20,20);
我创建了 hostile
并且在更新方法 hostile.move()
中调用了这个实例,但是 var hostile
可以工作,var hostile
没有,我检查了代码 hostile
是文件中的唯一引用。
最佳答案
var hostile = new hostile(20,20);
您刚刚覆盖了 hostile
变量以引用该实例而不是构造函数。
这是构造函数按照约定采用大驼峰命名的原因之一
关于javascript - 无法在 JavaScript 中创建新实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19542854/