Domanda

the following is my code,

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);

I have hostile created and I have this instance being called in the update method, hostile.move() however the var hostile works, the var hostile does not, I have checked the code hostile is the only reference in the file.

È stato utile?

Soluzione

var hostile = new hostile(20,20);

You just overwrote the hostile variable to refer to that instance rather than the constructor.

This is one of the reasons that constructors are UpperCamelCase by convention

Altri suggerimenti

You're erasing your constructor with

var hostile = new hostile(20,20);

Then you can't create other hostile objects.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top