Muy buenas (os voy a aburrir con tanto problema :P)
Como digo en el otro post, soy un novato, muy novato, y estoy intentando hacer un plataformas, y el primer escollo era el protagonista, tras aprender muchas cosas de los manuales y tutos y gracias a las ayudas que me habéis dado en el foro estoy muy cerca de conseguirlo, he aprendido sobre la gravedad, las animaciones y los movimientos. Y no ha sido fácil par mi, (soy bastante torpe) y he pensado varias veces en cambiar a Gamesalad, MMF2, construct, stencyl... etc, para ver si me era más fácil.
En parte por cabezonada y en parte por la gran cantidad de información en español que hay sobre GM, y obviamente también por la existencia de CGM he seguido dandole a GM.
Ahora me encuentro con algo que no termino de conseguir y no entiendo por qué. Se trata de las colisiones a la izquierda.
Tengo un personaje que va a la derecha perfectamente y cuando se encuentra un sólido choca, hasta ahí perfecto, pero cuando hago lo mismo hacia la izquierda el personaje desaparece y aparece un poco más atrás. A veces incluso me ha desaparecido y luego ha caido del techo :P
Adjunto el rar del proyecto a ver si podéis ayudarme. Probad a moveros a la derechaa, hasta chocar con el primer muro, veréis que colisiona bien, lo saltáis y llegad hasta el segundo muro, donde también colisiona bien, ahora volved hacia atrás para chocar con el primer muro pero desde el otro lado, caminando hacia la izquierda, y veréis el error. Muchas gracias.
El detalle es que usas GM Studio, y creo que la mayoría de los usuarios del foro aun somos fieles a GM8.1. La mayoría, o muchos, no podemos abrir tu proyecto. Como ya han mencionado otros miembros, GM Studio es relativamente nuevo y aun no está depurado al 100%, además la versión gratuita está bastante limitada.
Pues ni doscientasmil palabras más, voy a empezar de nuevo con gm8.1 lite y luego os cuelgo el código, si lo que llevo lo hago en un tris. Gracias.
Buenas de nuevo,
he vuelto a crear el proyecto, esta vez con Game Maker 8.1. Creo que incluso lo he optimizado un poco, quitando un par de "else" que no eran necesarios, o eso creo, el funcionamiento no se ve afectado.
El caso de las colisiones es el mismo, el problema está en la colisión con el objeto suelo. He probado de 2 maneras, la primera con el Move Fixed en el cuadrado, y aquí colisiona, pero hace cosas raras cuando está a punto de tocar el suelo, como que se encasquilla un poco, y cuando choca con una columna en el aire se queda volando pegado a la columna hasta que suelto la tecla que estoy pulsando.
Por otro lado, con la acción "move to contact in direction direction", ya no se encasquilla, el movimiento es mucho más suave, etc, pero cuando colisiona el personaje desaparece y a veces incluso vuelve a la pantalla cayendo del techo.... la acción move to contact es que directamente no la entiendo :(
Os agradecería cualquier ayuda con el tema de las colisiones y cualquier consejo o ayuda si me he equivocado en alguna otra parte.
Cuelgo el rar del proyecto en GM8.1 Lite.
Muchisimas gracias de nuevo.
Saludos.
Que tal hermano,
Aunque empecé a usar Game Maker en el 2007, soy novato ya que siempre lo dejo de usar por unos meses, luego lo retomo, hago un jueguito, lo dejo, y así voy. Hasta ahorita que voy a tomarmelo en serio con el Game Maker Studio Standard Edition.
Ok, el error que tienes es causado por el tamaño y origen de los sprites de la mujer. El sprite que camina a la derecha es de distinto tamaño del que camina a la izquierda.
Para corregirlo haz lo siguiente:
Da dobleclick al sprite de la NiiraDerecha, dale en Edit Sprite, luego Transform -> Resize Canvas (Resize Canvas es para modificar el tamaño del sprite sin que la imagen se estire ni se encoja), ahí le desactivas la opción Keep Aspect Ratio y luego le colocas el mismo tamaño que el sprite de la mujer caminando a la izquierda (Width 32, Height 64) das click en el cuadro del medio en Position (Igual deberia estar marcado por defecto) y le das OK.
Como te daras cuenta, cambiaron de tamaño todas las subimagenes. Ahora cierra esa ventana y cambia el origen del sprite al mismo que el otro (X = 17 , Y = 64).
Problema resuelto.
Espero sigas con tu proyecto y no lo dejes sin terminar, es el error que más cometemos los que estamos empezando con la programación de videojuegos.
Saludos desde Venezuela!
Lo unico que tenes que hacer es crear una mask y asignársela al object. Listo.