Abril 11, 2015, 02:42:50 PM Ultima modificación: Abril 12, 2015, 11:09:29 AM por Marron121
Estando en mi videojuego, he creado un código que revisara dos variables (dir y disparo) para disparar un objeto u otro depeniendo de la dirección. Además, he añadido una alarm para que no pueda disparar balas infinitamente  XD.

El problema es que,cuando le doy a compilar, me dice que hay un error en la compilación,y no se me ejecuta el juego ???. Solamente me dice eso, que ha habido un problema a la hora de compilar, y que el problema proviene de este código (ya que, si lo quito, el juego funciona correctamente)

Alguien me puede decir si hay algo mal en el código? He cogido uno que tenía hecho de Game Maker 8, pero no creo que ese sea el problema :(

if "dir"=1 and "disparo" = 1;
//Disparo activo y en dirección derecha
{
instance_create("obj_Ingeniero".x+15,"obj_Ingeniero".y+5,"obj_Bala_der")
//Crea la bala en la dirección de la derecha
disparo = 0;
alarm[0] = 60 * 1;
//Resetea el disparo a 1 segundo
}
if "dir"= 0 and "disparo" = 1;
//Disparo activo y en dirección izquierda
{
instance_create("obj_Ingeniero".x+-15,"obj_Ingeniero".y+5,"obj_Bala_izq")
disparo = 0;
alarm[0] = 60 * 1;
}
Jugador de muchos juegos y creador de algunos ;)
¿Buscas un guionista? Haz click aquí

#1 Abril 11, 2015, 02:44:54 PM Ultima modificación: Abril 11, 2015, 02:47:14 PM por arcangelcaos
Cita de: Marron121 en Abril 11, 2015, 02:42:50 PM
Estando en mi videojuego, he creado un código que revisara dos variables (dir y disparo) para disparar un objeto u otro depeniendo de la dirección. Además, he añadido una alarm para que no pueda disparar balas infinitamente  XD.

El problema es que,cuando le doy a compilar, me dice que hay un error en la compilación,y no se me ejecuta el juego ???. Solamente me dice eso, que ha habido un problema a la hora de compilar, y que el problema proviene de este código (ya que, si lo quito, el juego funciona correctamente)

Alguien me puede decir si hay algo mal en el código? He cogido uno que tenía hecho de Game Maker 8, pero no creo que ese sea el problema :(

if dir=1 and disparo = 1;
//Disparo activo y en dirección derecha
{
instance_create(obj_Ingeniero.x+15,obj_Ingeniero.y+5,obj_Bala_der)
//Crea la bala en la dirección de la derecha
disparo = 0;
alarm[0] = 60 * 1;
//Resetea el disparo a 1 segundo
}
if "dir"= 0 and "disparo" = 1;
//Disparo activo y en dirección izquierda
{
instance_create(obj_Ingeniero.x-15,obj_Ingeniero.y+5,obj_Bala_izq)
disparo = 0;
alarm[0] = 60 * 1;
}


corregido

Quita las comillas, porque si lo pones entre comillas, es como si fuera un texto, no un objeto o variable.

Ahh  y no es  + -15,  directamente -15

Ahh, y 60 * 1  = 60, porque pones eso?????

#2 Abril 11, 2015, 02:51:00 PM Ultima modificación: Abril 11, 2015, 03:00:24 PM por Marron121
Cita de: arcangelcaos en Abril 11, 2015, 02:44:54 PM
corregido

Quita las comillas, porque si lo pones entre comillas, es como si fuera un texto, no un objeto o variable.

Ahh  y no es  + -15,  directamente -15
Ahhhh amigo :P Vale, mi memoria me ha fallado muy bastamente  :'(
Cita de: arcangelcaos en Abril 11, 2015, 02:44:54 PM
Ahh, y 60 * 1  = 60, porque pones eso?????
Es la costumbre,la verdad. En códigos anteriores, ponía 30*3 y cosas así, y se me ha quedado la manera de hacerlo así :-[

Muchas gracias por responder tan rápidamente! Doy este post por solucionado  ;D

Edit: He puesto el código y me sigue dando error. Incluso he puesto solo la primera acción de crear la instancia y sigue dando error ???. ¿Que tengo mal puesto? :'(
Jugador de muchos juegos y creador de algunos ;)
¿Buscas un guionista? Haz click aquí

Cita de: Marron121 en Abril 11, 2015, 02:51:00 PM
Cita de: arcangelcaos en Abril 11, 2015, 02:44:54 PM
corregido

Quita las comillas, porque si lo pones entre comillas, es como si fuera un texto, no un objeto o variable.

Ahh  y no es  + -15,  directamente -15
Ahhhh amigo :P Vale, mi memoria me ha fallado muy bastamente  :'(
Cita de: arcangelcaos en Abril 11, 2015, 02:44:54 PM
Ahh, y 60 * 1  = 60, porque pones eso?????
Es la costumbre,la verdad. En códigos anteriores, ponía 30*3 y cosas así, y se me ha quedado la manera de hacerlo así :-[

Muchas gracias por responder tan rápidamente! Doy este post por solucionado  ;D

Edit: He puesto el código y me sigue dando error. Incluso he puesto solo la primera acción de crear la instancia y sigue dando error ???. ¿Que tengo mal puesto? :'(

El codigo deberia de ser así

if dir=1 and disparo = 1;
//Disparo activo y en dirección derecha
{
instance_create(obj_Ingeniero.x+15,obj_Ingeniero.y+5,obj_Bala_der)
//Crea la bala en la dirección de la derecha
disparo = 0;
alarm[0] = 1 * room_speed;
//Resetea el disparo a 1 segundo
}
if dir= 0 and disparo = 1;
//Disparo activo y en dirección izquierda
{
instance_create(obj_Ingeniero.x-15,obj_Ingeniero.y+5,obj_Bala_izq)
disparo = 0;
alarm[0] = 1 * room_speed // seria 1 segundo dependiendo de la velocidad de la room;
}


Tus errores fueron:

- En las coordenadas tenias +-15 es -15

- poniendo "" a objetos, obviamente no serviria ya que estas haciendo una cadena de texto y no nombrando al objeto ni una variable.

espero que te haya funcionado, ah para acortar el codigo y trabajo seria mucho mejor utilizando image_xscale o image_yscale para girar horizontal o verticalmente los sprites y no tener que hacer 2 objetos y 2 sprites

Pero que error. Para ver como lo solucionamos

Cita de: vitail en Abril 11, 2015, 10:02:21 PM

Tus errores fueron:

- En las coordenadas tenias +-15 es -15

- poniendo "" a objetos, obviamente no serviria ya que estas haciendo una cadena de texto y no nombrando al objeto ni una variable.

espero que te haya funcionado, ah para acortar el codigo y trabajo seria mucho mejor utilizando image_xscale o image_yscale para girar horizontal o verticalmente los sprites y no tener que hacer 2 objetos y 2 sprites

Cita de: arcangelcaos en Abril 11, 2015, 10:10:13 PM
Pero que error. Para ver como lo solucionamos

Sigue sin funcionar,me sigue dando el mismo error. Como he dicho en el post, me dice que la compilación ha fallado,nada más. Sale que le de para más información,pero no sale nada de nada.
Jugador de muchos juegos y creador de algunos ;)
¿Buscas un guionista? Haz click aquí

if disparo=1
{
alarm[0]=60
disparo=0
if dir=1 {instance_create(x,y,obj_Bala_der)}
if dir=0 {instance_create(x,y,obj_Bala_izq)} 
}


Cita de: 3dgeminis en Abril 12, 2015, 05:28:08 AM
if disparo=1
{
alarm[0]=60
disparo=0
if dir=1 {instance_create(x,y,obj_Bala_der)}
if dir=0 {instance_create(x,y,obj_Bala_izq)} 
}

Siii! Ya funciona :'( :'( :'(

Muchas gracias a todos por la ayuda, ya que, aunque no hayamos arreglado el código al principio, he aprendido un par de cosas sobre el GML muy útiles  :D

Un saludo, y muchas gracias nuevamente!  :)
Jugador de muchos juegos y creador de algunos ;)
¿Buscas un guionista? Haz click aquí