2011-09-11 3 views
2

J'ai maintenant ce code: http://jsfiddle.net/DK67k/2/ Voici la carte de tuiles en 2D et quand vous cliquez sur la tuile vous obtenez des coordonnées sur l'alerte. Mais pour obtenir des coordonnées précises, vous devez cliquer sur la tuile en haut à gauche (les tuiles sont de 16x16) et si je clique sur la tuile en bas à droite, je reçois les deuxièmes coordonnées de tuiles.Coordonnées de la carte de tuile

Peut-être que quelqu'un a une idée de comment résoudre ce problème?

Répondre

2

La réponse de Blaus est correcte. Bien que vous souhaitiez peut-être soustraire la position de gauche et la position supérieure du canevas pour rendre votre élément de canevas disponible pour le positionnement dynamique, et non par rapport au remplissage de 10px.

function mouseCheck(e) { 
    var x = e.pageX - canvas.offsetLeft; 
    var y = e.pageY - canvas.offsetTop; 
    mouseX = Math.floor(x/16); 
    mouseY = Math.floor(y/16); 
} 
+0

Impressionnant! Très très merci Blau et hellozimi! – uvyre

+0

@hellozimi Je devrais apprendre le javascript. Je suis intrigué par l'absence de boucle pour le tirage au sort. Je suppose que si vous avez besoin de déplacer quelque chose, vous devrez ajouter un écouteur à un événement de peinture ou similaire:? – Blau

3

Le point de toile (0,0) est aux coords de souris (10,10), je pense est dû au parent de la toile a une zone de remplissage.

function mouseCheck(e) { 
    x = e.pageX-10; 
    y = e.pageY-10; 
    mouseX = Math.floor(x/16); 
    mouseY = Math.floor(y/16); 
} 
Questions connexes