1 decade ago by Nico
In main:
Entity code:
I know this code is ugly but it should work. When the positions are hard coded into the entity it spawns fine with:
But if I try to set variables and spawn it like so:
It will say it is spawning an entity but the entity has no position when I log it to the console and I can't see it on the screen.
Very weird, I'm stumped. Any help is much appreciated.
-Nico
EDIT: WTFFFFF?!?!?!
Moving the call to populateItems() from init to loadLevel in main fixed it. Can anyone shed light on why that would be?
populateItems: function() {
//spawn items if they exist
var x = 12;
var y = 29;
this.spawnEntity(EntityItem1, x, y);
}
Entity code:
EntityItem1 = ig.Entity.extend({
animSheet: new ig.AnimationSheet( 'media/inv1.png', 28, 27 ),
size: {x: 28, y:27},
maxVel: {x: 0, y: 0},
checkAgainst: ig.Entity.TYPE.NONE,
collides: ig.Entity.COLLIDES.PASSIVE,
stats: {
str: 2,
dex: 0,
inte: 0,
vit: 5,
spd: 0,
luk: 0,
armor: 4,
resist: 2
},
init: function( x, y, settings ) {
this.parent( x, y, settings );
console.log(this.pos);
this.addAnim('walk', .7, [0]);
},
update: function() {
//this.pos.x = 16;
//this.pos.y = 90;
if (ig.input.pressed('click') && this.inFocus()) {
if(ig.game.gameName != 'Inventory'){
this.kill();
}else{
ig.game.spawnEntity( EntityItem1e );
ig.game.allData.playerData.itemList.Item1.count = 0;
ig.game.allData.playerData.itemList.Item1.equipped = true;
for( stat in ig.game.allData.playerData.stats ){
ig.game.allData.playerData.stats[stat] = ig.game.allData.playerData.stats[stat] + this.stats[stat];
}
this.kill();
}
}
this.parent();
},
inFocus: function() {
return (
(this.pos.x <= (ig.input.mouse.x + ig.game.screen.x)) &&
((ig.input.mouse.x + ig.game.screen.x) <= this.pos.x + this.size.x) &&
(this.pos.y <= (ig.input.mouse.y + ig.game.screen.y)) &&
((ig.input.mouse.y + ig.game.screen.y) <= this.pos.y + this.size.y)
);
}
});
I know this code is ugly but it should work. When the positions are hard coded into the entity it spawns fine with:
this.spawnEntity(EntityItem1);
But if I try to set variables and spawn it like so:
this.spawnEntity(EntityItem1, x, y);
It will say it is spawning an entity but the entity has no position when I log it to the console and I can't see it on the screen.
Very weird, I'm stumped. Any help is much appreciated.
-Nico
EDIT: WTFFFFF?!?!?!
Moving the call to populateItems() from init to loadLevel in main fixed it. Can anyone shed light on why that would be?
