Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Spawn_x3 en Febrero 21, 2012, 11:45:03 AM

Título: Problemas juego Isometrico----Disparo y movimiento
Publicado por: Spawn_x3 en Febrero 21, 2012, 11:45:03 AM
Buenos días, saludos amigos, pues de nuevo aqui molestando ???
tengo una duda, estoy realizando un juego Isometrico donde el personaje tendrá que disparar en la dirección que se mueve o en la que esta mirando, pero todo esto de la isometria es nueva para mi y termino enredandome con las posiciones y movimientos. Les muestro como estoy moviendo mi personaje. (http://s2.subirimagenes.com/privadas/previo/thump_1766611sin-ttulo.png)

//Mover Personaje isometrico
switch (keyboard_key) 
{
case vk_up :Up.image_speed= 0.2;Personaje1_obj.x+=4;Personaje1_obj.y=2;Personaje1_obj.sprite_index=Up;break;
case vk_down:Down.image_speed=0.2;Personaje1_obj.x-=4;Personaje1_obj.y+=2;Personaje1_obj.sprite_index=Down;break;
case vk_right:rigth.image_speed=0.2;Personaje1_obj.x+=4;Personaje1_obj.y+=2;Personaje1_obj.sprite_index=rigth;break;
case vk_left:Left.image_speed=0.2;Personaje1_obj.x-=4;Personaje1_obj.y-=2;Personaje1_obj.sprite_index=Left;break;
case vk_nokey: Personaje1_obj.image_index=3;break;
//combinando teclas
}


Pues de verdad estoy hecho un lío y no puedo hacer que dispare hacia donde debe xD, alguien tiene la solución.
y si pudieran decirme donde puedo encontrar información sobre juegos isometricos ya que parece escasa.

gracias por su ayuda y paciencia.
Título: Re:Problemas juego Isometrico----Disparo y movimiento
Publicado por: romon_28 en Febrero 21, 2012, 04:02:26 PM

if keyboard_check( ord("Z") )
{
var Dir, In;
Dir = point_direction(Personaje1_obj.xpreviews,Personaje1_obj.ypreviews,Personaje1_obj.x,Personaje1_obj.y);

In = instance_create(x,y,Obj_Disparo);
In.speed = 8;
In.direction = Dir;
}

Fijate si te ayuda en algo -.-

ROMON®
Título: Re:Problemas juego Isometrico----Disparo y movimiento
Publicado por: Spawn_x3 en Febrero 22, 2012, 05:22:31 AM
al precionar la tecla Z me marca el siguiente error:


ERROR in
action number 1
of  Step Event
for object Control_obj:

Error in code at line 18:
    Dir = point_direction(Personaje1_obj.xpreviews,Personaje1_obj.ypreviews,Personaje1_obj.x,Personaje1_obj.y);
                                         ^
at position 40: Unknown variable xpreviews
Título: Re:Problemas juego Isometrico----Disparo y movimiento
Publicado por: romon_28 en Febrero 22, 2012, 03:14:27 PM
Mejor te exploco el codigo

keyboard_check( X ) es para comprobar si se esta tocando X tecla, por ejemplo: vk_enter, vk_space, vk_left, etc
En caso que quieras hacerlo con algunas de las letras no podes poner "vk_z" porque no existe! solo pone ord( X ) sindo X un texto porlo que tendras que estar entre comillas "asi" colocando la teclas deciada en mayuscula asi:
"Z"
quedando:
ord("Z");

"var" es para que las variables que se creen en este codigo no afecten a otras. en pocas palabras son variables auxiliares.
point_direction(X1, Y1, X2, Y2) cancula la direccion entre un punto y otro.
instance_create(x,y,Obj_Disparo) crea una instancia del objeto "Obj_Disparo", obviamente es un nombre que invente por lo que tenes que suplantarlo por el nombre del objeto que es disparado.
speed = 8; Asigna la velosidad de una instancia
direction = Dir; Asigna la direccion de una instancia

tu problema de seguro es que no tenes un objeto llamado "Personaje1_obj"
cambia esa parte del codigo por el nombre del objeto que es el personaje principal de tu juego.
a un consejo -no te combiene hacer que un objeto controle todos los movimientos del jugado, mejor hacelo dentro del El. Eso si vas a tener que modificar un poco tus codigos  :-* -

Suerte
Título: Re:Problemas juego Isometrico----Disparo y movimiento
Publicado por: Spawn_x3 en Febrero 24, 2012, 04:38:02 AM
Gracias por su ayuda, con un poco de el código que me dieron y macheteando el manual logré crear los disparos correctos en las direcciones adecuadas. Muchísimas gracias y disculpen si soy muy preguntón.  :-[