miren tengo un problema el personaje tiene problemas con la gravedad
tienes que afuersas saltar para que se mueva, y cuando el personaje se mueve al otro lado no avansa y si saltas mucho se atora como corrijo el error si me pueden ayudar porfavor  :'(  :-\  :-[

    Es un problema típico con los sprites, se soluciona muy fácil poniéndole una máscara al objeto que tiene problemas, en este caso la niña. Que es una máscara? es otro sprite con una forma más simple (por ejemplo, un rectangulo) que evita problemas de colisiones y que se le asigna al objeto. Game maker en vez de "mirar" el sprite de la niña, mirará la mascara. Busca en la carpeta Jugador y encontraras el sprite s_mask, la cual es la mascara :) Esta se asigna en las propiedades del objeto Personaje en la pestaña Mask
   Además le quite el valor solido a las bolas de colores para que el personaje no colisione con ellas si no que se las "coma" sin problemas xD
   Tu engine tiene cosas que podrían mejorarse mucho más, pero no quise hacerte muchos cambios para que a medida que tengas más problemas, puedas solucionarlo por tu propia cuenta.

Saludos
 
   Metroid Gravity      -Trailer aqui-

gracias me has ayudado mucho  :D   :) (Y)

#3 Mayo 28, 2012, 01:13:18 AM Ultima modificación: Mayo 28, 2012, 01:17:03 AM por mriouy
Gracias froger, a partir de tu ayuda,intente resolverlo por modify mask, y solo con algunos tamaños de mascara, carcanos a los valores que tu usaste resuelven el problema. Ahora, mi pregunta es, como llegaste a elegir ese tamaño de mascara, o llegaste mediante  "ensayo y error" sabiendo que la solucion estaba por ahi.

Como la mascara es rectangular , destilde Precise collision checking, es mejor asi?

El hecho de que destildes solidos, en el caso de las pelotas, es porque las instancias van a ser destruidas?

Muchas gracias desde ya

Precise collision checking R: Si es mejor para que tome como colision la caja y no el sprite.
El hecho de que destildes solidos..... R: Esto se debe que solidos se usa mas para objectos inanimados osea sin movimientos.

#5 Mayo 28, 2012, 07:56:30 AM Ultima modificación: Mayo 28, 2012, 08:00:35 AM por FrogGer
 Pues yo cuando hago una mascara uso el siguiente método: Duplico un sprite del objeto protagonista, en este caso niña_der, y creo un rectángulo encima de ella tratando de abarcar todo lo que quiero que colisione. Luego borro todo lo demás y dejo solo el rectángulo limpio.
  Al usar mascaras siempre se evitan problemas de colision, ya que de la manera normal, al cambiar sprites en el juego mediante código (cuando cambias a niña_iz al girar a la izquierda, o a niña_der al girar a la derecha) la mayoría de las veces no estan bien sincronizadas las imagenes. Imaginate un objeto que tenga 50 imagenes diferentes, seria una pesadilla. Con la mask solo le das un sprite mascara al objeto nada más, y te olvidas de lo demas :)

  Ahora como dice elvis, es mejor el precise collision, pero en este caso como es un simple sprite rectangular no afecta tanto. Te recomiendo que no te preocupes por eso y siempre marques precise colision.

  Por ultimo, a las bolas de colores les quite el valor sólido ya que tu codigo de movimiento de personaje dice que solo te puedes mover (a la derecha o a la izquierda) si no hay instancias SOLIDAS delante. Quitandole lo solido el personaje puede comerselas sin problemas de lado. Ahora bien, supuse que las bolas debian comerse, si no es así solo marcalas sólidas nuevamente.

  Cualquier duda sólo pregunta.
   Metroid Gravity      -Trailer aqui-