Estoy tratando de averiguar cómo puedo obtener el mosaico "activo" correcto debajo del mouse cuando tengo "rampa" y mosaicos de altura +1 (vea la imagen a continuación).Pantalla isométrica para asignar
Cuando mi mundo es plano, todo funciona sin problemas. Una vez que agregue un mosaico con una altura de, digamos, +1, junto con una rampa que se remonta a +0, mi pantalla -> rutina de mapa sigue pareciendo como si todo fuera "plano".
En la imagen de arriba, la "rampa" verde es la baldosa real que quiero representar y calcular el mouse -> mapa, sin embargo, la baldosa azul que ves "debajo" es el área que se calcula. Entonces, si mueves el mouse a cualquiera de las áreas verdes oscuras, piensa que estás en otra casilla.
Aquí está mi mapa render (muy simple)
canvas.width = canvas.width; // cheap clear in firefox 3.6, does not work in other browsers
for(i=0;i<map_y;i++){
for(j=0;j<map_x;j++){
var xpos = (i-j)*tile_h + current_x;
var ypos = (i+j)*tile_h/2+ current_y;
context.beginPath();
context.moveTo(xpos, ypos+(tile_h/2));
context.lineTo(xpos+(tile_w/2), ypos);
context.lineTo(xpos+(tile_w), ypos+(tile_h/2));
context.lineTo(xpos+(tile_w/2), ypos+(tile_h));
context.fill();
}
}
Y aquí es mi ratón -> Mapa de rutina:
ymouse=((2*(ev.pageY-canvas.offsetTop-current_y)-ev.pageX+canvas.offsetLeft+current_x)/2);
xmouse=(ev.pageX+ymouse-current_x-(tile_w/2)-canvas.offsetLeft);
ymouse=Math.round(ymouse/tile_h);
xmouse=Math.round(xmouse/(tile_w/2));
current_tile=[xmouse,ymouse];
tengo la sensación de que voy a tener que empezar de nuevo y poner en práctica un sistema de mapas basado en el mundo en lugar de una simple pantalla -> rutina de mapas.
Gracias.