0
Guys, I need a logic that, by detecting whether the value of x, y changed, change the position of an object on the map.
I have a map that contains 50x50 tiles, and in these Tiles there are objects that I can move using the code below:
var playerx = 10;
var playery = 15;
function drawMap() {
for (i = 0; i < map.length; i++) {
for (j = 0; j < map[i].length; j++) {
var drawTile = map[i][j];
var drawObj = objectMap[i][j];
var xpos = (i-j) * tileH + mapX;
var ypos = (i+j) * tileH/2 + mapY;
ctx.drawImage(tileImg[drawTile], xpos, ypos);
if (drawObj) {
ctx.drawImage(objectImg[drawObj-1], xpos, ypos - (objectImg[drawObj-1].height));
}
}
}
}
To add the object I use this property:
objectmap[playerx][playery] = 1;
And to remove I use the function delete:
delete objectmap[playerx][playery];
What happens is that the object is in positions 10 and 15 which are the values of the variables playerx and playery, but I have a function that takes the mouse position and when clicking changes the value of playerx and playery, happens that as the value of the function changes, it adds objects in the map, without removing the last.
So the map gets multiple objects, but I want the object to stay just where the values of the variables point.
You know how to do that with a if or otherwise?
Can you review the question and clarify the question better? can you add a jsFiddle to make it clearer?
– Sergio
and because I’m on the tablet, and how do I put the code tags on stackoverflow?
– adailton moraes
I edited the question for you, you can put codes using the symbol `
– Eduardo Silva
no one knows how to do no?
– adailton moraes
Attention moderators can delete my post and topic as I’ve solved this problem.
– adailton moraes