0

以下是我的代码,

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()但是 varhostile有效,varhostile无效,我检查了代码hostile是文件中的唯一引用。

4

2 回答 2

2
var hostile = new hostile(20,20);

您只是覆盖了hostile变量以引用该实例而不是构造函数。

这是构造函数按照惯例是 UpperCamelCase 的原因之一

于 2013-10-23T13:22:17.757 回答
1

你正在擦除你的构造函数

var hostile = new hostile(20,20);

然后你不能创建其他敌对对象。

于 2013-10-23T13:22:11.240 回答