Noticias

Importante: ¡Si quieres publicar tu juego no olvides leer este tema!

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Error en Colision  (Leído 2293 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado YoshiGM

  • Habitual
  • *
  • Puntos: 0
  • Mensajes: 21
  • Sexo: Masculino
  • El Yoshi Game Master
    • Ver Perfil
    • Yoshi Fans Club
en: Noviembre 17, 2009, 03:03:13 am
Veran que estoy haciendo un juego y cuando toco la colision de un bloque que segun eso, te da ayuda, aparece el siguiente error:

Citar
___________________________________________
ERROR in
action number 2
of Collision Event with object objeto_consejos
for object objeto_Yoshi:

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

Le doy ignore, y otro error:

Citar
___________________________________________
ERROR in
action number 2
of Collision Event with object objeto_consejos
for object objeto_Yoshi:

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

___________________________________________
ERROR in
action number 11
of Collision Event with object objeto_consejos
for object objeto_Yoshi:

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


Lo mas raro es que despues de darle ignore a esos errores se activa la colision y lo que deberia suceder. Otro error que tengo es la colision con el bloque de coins, cuando el character lo toca marca error y le doy ignore y aparece el sprite de la coin y empieza a sumar los puntos muy alocadamente o .o



 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado santkont

  • Habitual
  • *
  • Puntos: 0
  • Mensajes: 74
  • Sexo: Masculino
    • Ver Perfil
Respuesta #1 en: Noviembre 17, 2009, 02:50:42 pm
Código: [Seleccionar]
Error in expression:vspeed < 0 && y > other.y+8
 position 25: Unknown variable y

Yo no sé mucho pero puedo decirte que el game maker te dice que esa parte del codigo está mal escrita

La variable Y está mal.
(No debería ser hspeed?)

PD:No lo tomes como de alguien que sabe sino de alguien que quiere ayudar :-[

 


Desconectado Alfonsos1

Respuesta #2 en: Noviembre 17, 2009, 02:51:20 pm
Citar
Error in expression:vspeed < 0 && y > other.y+8
 position 25: Unknown variable y

no se que hace la palabra "clave" other pero en el el pedazo de codigo citado te refieres a esta palabra como si fuera el id de alguna instancia en la room, la unica manera por la cuan la computadora desconoceria la variable y de una instancia es que esa instancia no exista en el room.

probablemente le allas llamado other a algun objeto, de ser aci cabiale el nombre
« última modificación: Noviembre 17, 2009, 02:57:19 pm por Alfonsos1 »

 


Desconectado SP_Christian

  • Asiduo
  • *
  • Puntos: 0
  • Mensajes: 204
    • Ver Perfil
Respuesta #3 en: Noviembre 17, 2009, 03:10:52 pm
En un evento de colision, "other" hace referencia al objeto con el que se esta colisionando.
En este caso seria objeto_consejos.

De todas formas lo mas seguro esque el error te lo lance por el hecho de que toda esa linea de codigo debe estar dentro de un if.
Al decirle que ignore el error, continua ejecutando el resto de codigo y por tanto los eventos de colision que no dan error son ejecutados.

 


Desconectado YoshiGM

  • Habitual
  • *
  • Puntos: 0
  • Mensajes: 21
  • Sexo: Masculino
  • El Yoshi Game Master
    • Ver Perfil
    • Yoshi Fans Club
Respuesta #4 en: Noviembre 17, 2009, 05:21:31 pm
Aca dejo como tengo configurado el objeto del jugador(Colisiones):

~Colision con Objeto_Consejos~



~Colision con Bloque de Monedas~



Saludos :)



 


Desconectado Guacusio

Respuesta #5 en: Noviembre 19, 2009, 12:42:50 am
La situación que propones, tal como la planteas, es imposible. Toda instancia, por el hecho de existir, tiene un cierto grupo de variables, entre ellas la variable y.

La única explicación posible me parece ser que desde el momento en que ocurre la colisión y el momento en que revisas la expresión que causa el error algo ocurrió que desactivó o destruyó la otra instancia y en consecuencia su variable y deja de existir. ¿Tienes algún código para el evento recíproco, es decir, la colisión con objeto_Yoshi del objeto objeto_consejos?

Asegúrate de que existe la instancia asociada a other antes de evaluar su variable y. Por ejemplo, para probar, luego de colocar en cero la variable global.escalar agrega un mensaje que indique el valor de la coordenada y de other:

Código: [Seleccionar]
show_message("other.y="+string((other.id).y);


 


Desconectado YoshiGM

  • Habitual
  • *
  • Puntos: 0
  • Mensajes: 21
  • Sexo: Masculino
  • El Yoshi Game Master
    • Ver Perfil
    • Yoshi Fans Club
Respuesta #6 en: Noviembre 19, 2009, 12:56:01 am
Hmm opte por reiniciar todo mi juego y la segunda ocasion me fue de maravilla, un amigo me explico si marca por ejemplo x variable desconocida, tengo que mandar decir la variable en create :P.

Ahora tengo otro problema, quiero que mi jugador cuando toque una liana,(rama para escalar), que cuando presione UP(Flecha), en mi teclado suba el personaje con el sprite que tengo de climbing. Ya use varios ejemplos, coloco bien los objetos en mi mapa y no sube, por mas que presiono UP, no sube >.<

Esta es la configuracion(code) que tengo para cuando el jugador colisione con la rama:

Citar
if  (keyboard_key=vk_up){escalar=1;}

No se si esta bien escrito o tengo algo mal, espero respuestas :D



 


Desconectado Guacusio

Respuesta #7 en: Noviembre 19, 2009, 01:10:59 am
La sintaxis es correcta. Sin embargo, creo que sería mejor colocar el código en el evento key_press y dentro de éste revisar si existe la colisión con la liana (es más costoso revisar una colisión que la presión de una tecla). Sobre lo otro, todo depende de lo que hagas con la variable escalar. ¿Cómo la usas?


 


Desconectado YoshiGM

  • Habitual
  • *
  • Puntos: 0
  • Mensajes: 21
  • Sexo: Masculino
  • El Yoshi Game Master
    • Ver Perfil
    • Yoshi Fans Club
Respuesta #8 en: Noviembre 19, 2009, 01:20:11 am
Lo tengo de la siguiente manera... en el evento del jugador, cuando el objeto colisione con la ladder(la red), que es invicible, se ejecuta el code mencionado.

En keyboard solo tengo la acciones de que revise las colisiones, que se brique a la posicion,etc.



 


Desconectado Guacusio

Respuesta #9 en: Noviembre 19, 2009, 01:23:46 am
¿Pero dónde haces la operación de subida? Me refiero a algo como:

Código: [Seleccionar]
y-=4;
o como sea que el personaje suba.


 


elviskelley

  • Visitante
Respuesta #10 en: Noviembre 19, 2009, 01:30:53 am
en vez de other.y usa instance_nearest sera mejor variable temporal, ejemplo.

var  a;
a=instance_nearest(x,y,other);
if instance_exists(a)
{
if vspeed < 0 && y > a.y+8
{codiggo tuyo.}
}

 


Desconectado YoshiGM

  • Habitual
  • *
  • Puntos: 0
  • Mensajes: 21
  • Sexo: Masculino
  • El Yoshi Game Master
    • Ver Perfil
    • Yoshi Fans Club
Respuesta #11 en: Noviembre 19, 2009, 02:06:26 am
Haber... hmm actiones del keyboard up:

Check Object:
object: Ladder
x=0
y=0
(.)Relative   ()Not

Test Variable
variable: ammo(flor)
value: 2
operation: Equal to

Check Empty
x=0
y=3
objects: only solid
(.)Relative (.)Not

Speed Vertical:
-15

Jump to Position
x:0
y: -3
()Relative

Check Empty
x=0
y=-3
objects: Only Solid
(.)Relative ()Not

Jump to Position
x=0
y=-3
(.)Relative

Los puntos que coloque entre parentesis, en este caso indican que la opcion esta marcada.


EDITADO: Perdonen pero al parecer el code se ejecuta pero en vez de escalar el jugador brinca como si nada o.O
« última modificación: Noviembre 19, 2009, 02:15:03 am por YoshiGM »