Reputation: 371
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.
Upvotes: 0
Views: 75
Reputation: 887443
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
Upvotes: 2
Reputation: 1891
You're erasing your constructor with
var hostile = new hostile(20,20);
Then you can't create other hostile objects.
Upvotes: 1