1 decade ago by ShawnSwander
/this is a script to look at a tile adjacent to the player in my game. In simple terms right clicking spawns an entity that is the size of the screen that is a blown up version of the tile clicked. Eventually I am going to have the game show any items on the ground there when zoomed in. The problem is some times the wrong tile is shown
I looked for a pattern to why its incorrect but couldn't find one. Any idea why the data on my map might not match what the screen displays?
hexzoom's draw function
I looked for a pattern to why its incorrect but couldn't find one. Any idea why the data on my map might not match what the screen displays?
if( ig.input.pressed('rightclick')){
if (ig.input.mouse.x>110&&ig.input.mouse.x<275&&ig.input.mouse.y>110&&ig.input.mouse.y<275){
tiles = ig.game.getMapByName('hexes');
tilex = parseInt((ig.input.mouse.x-165+this.pos.x)/HEX_SIZE);
tiley = parseInt((ig.input.mouse.y-165+this.pos.y)/HEX_SIZE);
console.log(tiles.data[tilex][tiley]+"@"+tilex+","+tiley)
if (!ig.game.hexzoom){
ig.game.hexzoom = ig.game.spawnEntity(EntityHexzoom, this.pos.x-165,this.pos.y-165,{});
ig.input.unbindAll();
ig.game.screenstate = 1;
}
ig.game.hexzoom.currentAnim = ig.game.hexzoom.anims[tiles.data[tilex][tiley]-1]
}else{
ig.game.player.messagebox = "You cannot see that far.";
}
}
hexzoom's draw function
draw: function(){
var ctx = ig.system.context;
ctx.save();
ctx.translate( ig.system.getDrawPos( this.pos.x.round() - this.offset.x - ig.game.screen.x ),
ig.system.getDrawPos( this.pos.y.round() - this.offset.y - ig.game.screen.y ) );
ctx.scale( this.scale.x, this.scale.y );
this.currentAnim.draw( 0, 0 );
ctx.restore();
}
