Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: ledillman en Mayo 21, 2010, 10:25:57 PM

Título: Matar a un enemigo al caer sobre el. ?Unknown variable y?
Publicado por: ledillman en Mayo 21, 2010, 10:25:57 PM
holas! tengo un problema con mi jugador en game maker 8 pro  :GM8:

Veran, para matar a un monstruo mi jugador debe saltar, y pues cuando lo trato de matar saltando me aparece el siguiente error:

ERROR in
action number 1
of Collision Event with object Enemy_1
for object Player:

Error in expression:vspeed > 0 && y < other.y+8
position 25: Unknown variable y


Mi pregunta es, como solucionarlo?!

gracias de antemano
Título: Re: Problema! ayuda!
Publicado por: MatuX en Mayo 21, 2010, 11:49:33 PM
podes mostrar la linea de codigo que muestra el error asi puedo entenderlo mejor :)
Título: Re: Problema! ayuda!
Publicado por: ledillman en Mayo 22, 2010, 12:38:11 AM
Cita de: MatuX en Mayo 21, 2010, 11:49:33 PM
podes mostrar la linea de codigo que muestra el error asi puedo entenderlo mejor :)

ok lo interpreatre asi:

"If an expression is true: vspeed > 0 && y < other.y+8
Start of a block,
Set the vertical speed: -9
destroy the instace: Other
end of a block

Else

Start of a block
sleep 1000 miliseconds
change instace: player_die, perform events: yes
end of a block
Título: Re: Problema! ayuda!
Publicado por: Alfonsos1 en Mayo 22, 2010, 12:44:30 AM
que raro...  ???

CitarUnknown variable y

esto quiere decir que no existe la variable "y", pero todas las instancias tienen su propia variable y...  ???

la otra posibilidad es que no exista la instancia other, pero deveria existir ya que el evento es un evento de colicion...  ???

lament no poder alludarte m?s  :-[

UNA PREGUNTA: EN CUAL DE LAS DOS "y" TE SE?ALA EL ERROR?
Título: Re: Problema! ayuda!
Publicado por: ledillman en Mayo 22, 2010, 12:53:44 AM
Cita de: Alfonsos1 en Mayo 22, 2010, 12:44:30 AM
que raro...  ???

CitarUnknown variable y

esto quiere decir que no existe la variable "y", pero todas las instancias tienen su propia variable y...  ???

la otra posibilidad es que no exista la instancia other, pero deveria existir ya que el evento es un evento de colicion...  ???

lament no poder alludarte m?s  :-[

cual de las dos "Y"? hmm no entiendo tu pregunta...

Lo extra?o es que solo me pasa al poner el enemigo al principio edl nivel, pero si pongo otros mas, que cuando yo valla avanzando se amplie el nivel, esos estan como deberian estar...

UNA PREGUNTA: EN CUAL DE LAS DOS "y" TE SE?ALA EL ERROR?
Título: Re: Problema! ayuda!
Publicado por: MatuX en Mayo 22, 2010, 06:16:44 AM
la verdad no se pero para mi es el #other.y#
Título: Re: Problema! ayuda!
Publicado por: dmg969soft en Mayo 22, 2010, 06:49:12 AM
El error esta en la segunda ?y? campo 25, quiere decir que no reconoce que es (?other?.y)
Prueba sustituyendo other --> nombre del enemigo.y
Título: Re: Problema! ayuda!
Publicado por: Fenris78 en Mayo 22, 2010, 07:18:56 AM
Mmmm... podria ser que el error te aparece porque busca el objeto jugador busca la variable en una instancia que ya no existe.

If an expression is true: vspeed > 0 && y < other.y+8
Start of a block,
Set the vertical speed: -9
destroy the instace: Other
end of a block


Te consejo hacer lo siguiente: pon el codigo de verificacion en la instancia enemiga en lugar de la del jugador. A ser posible utiliza GML, porque te dara un control mas preciso de lo que haces.

Evento colision del enemigo:

if (other.vspeed!=0 && other.y+8<y) {Player.vspeed-=9; instance_destroy();}

else{//pon aqui el codigo para la muerte del jugador}


A la larga es mas sencillo usar codigo.

PD: El icono de GM8 lo tienes que poner en el titular, no en el cuerpo del mensaje. La idea es que quien esta ojeando el subforo sepa de que va el tema antes de abrir el mensaje. Lo mismo ocurre con el titular. Trata de ser especifico.
Título: Re: Problema! ayuda!
Publicado por: ledillman en Mayo 23, 2010, 01:21:19 AM
Cita de: Fenris78 en Mayo 22, 2010, 07:18:56 AM
Mmmm... podria ser que el error te aparece porque busca el objeto jugador busca la variable en una instancia que ya no existe.

If an expression is true: vspeed > 0 && y < other.y+8
Start of a block,
Set the vertical speed: -9
destroy the instace: Other
end of a block


Te consejo hacer lo siguiente: pon el codigo de verificacion en la instancia enemiga en lugar de la del jugador. A ser posible utiliza GML, porque te dara un control mas preciso de lo que haces.

Evento colision del enemigo:

if (other.vspeed!=0 && other.y+8<y) {Player.vspeed-=9; instance_destroy();}

else{//pon aqui el codigo para la muerte del jugador}


A la larga es mas sencillo usar codigo.

PD: El icono de GM8 lo tienes que poner en el titular, no en el cuerpo del mensaje. La idea es que quien esta ojeando el subforo sepa de que va el tema antes de abrir el mensaje. Lo mismo ocurre con el titular. Trata de ser especifico.

Muchas gracias! ahora esta mejor!, aunque tengo un problemita, pero no es nada serio y no es muy grande, lo que pasa esque ahora me sale el mismo error, pero SOLO si  ay un enemigo del mismo tipo en el nivel, osea, para solucionarlo tengo que poner mas de uno.

Saludos y gracias!
Título: Re: Matar a un enemigo al caer sobre el. ?Unknown variable y?
Publicado por: Alfonsos1 en Mayo 23, 2010, 01:28:29 AM
en el evento de colicion no has colocado nada antes de esa esprecion?, porque pareciera que se destrulle a la instancia other despues de que comienza el evento y antes de dicha esprecion...