Hola consulta deseo desarrollar un videojuego isometrico al mejor estilo del diablo 2, utilizo sprites para el personaje principal de cuerpo completo, y creado para utilizar 8 direcciones, ahora el tema es que me interesaria que la jubalidad sea igual a la de este juego  (diablo 2), osea el personaje se maneja integramente con el mouse, uno hace click en alguna direccion y el personaje se mueve hacia ahy y si pulsa con el otro boton sobre un enemigo lo hira a atackar, necesito alguna idea de como implementarlo.- gracias.-

#1 Abril 23, 2012, 08:51:34 PM Ultima modificación: Abril 23, 2012, 09:10:16 PM por elviskelley
event create.
//declara las siguientes.
move=false; //se utilizara para indicar que tiene que moverse.
xx=x; //se utilizara para el movimiento de la coordenada X
yy=y; //como lo anterior pero coordenada Y.
atk=false; //indicara que ataque al dicho enemigo.
ene=0; //Enemigo al cual atacara.

Event Step
if move and distance_to_point(ene.x,ene.y)>8
{mp_potential_step(xx,yy,3,1);}
else
{move=false}
//si se puede mover se mueve pos-.

if atk and distance_to_point(ene.x,ene.y)> radio
{mp_potential_step(ene.x,ene.y,3,1);}
else
if instance_exists(ene)  and !move //si existe el enemigo es decir aun no lo elimina
{sprite_index=/*animacion de ataque;*/ if !instance_exists(bala) {instance_create(x,y,bala)} atk=false;}

//Event global mouse left
xx=mouse_x; yy=mouse_y; move=true; atk=false;

//event global mouse right.
ene=(instance_nearest(mouse_x,mouse_y,objPadreEnemigo); //padreEnemigo es un object al cual se le hacen parent
atk=true;
move=false;

//Esto es solo una idea pero funciona.

Makero the_blade:


   Te propondría utilizar una grilla isométrica para las posiciones de los elementos en el mundo.  :D

   En cuanto a la selección de los enemigos con el cursor, puedes utilizar máscaras.  :D

   Para las colisiones entre elementos del mundo (proyectiles, personajes, etc.) puedes implemente chequear si coinciden en el mismo cuadro de la grilla.  :)

   Sería engorroso que si se mueve solo con el "mouse" en la dirección del lugar donde se dio "click", mientras se huye de un enemigo no se puede responder a los ataques disparando algún arma, pues siempre estaremos de espaldas a ellos.

  Si utilizas el mouse y teclado al unísono puedes desplazarte en marcha atrás mientras contestas el fuego de un enemigo que te persigue.

  Es tan solo una sugerencia...  ;) 

  Gracias por la atención prestada y disculpa las molestias ocasionadas.  ;D