Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: DHX en Noviembre 20, 2014, 01:51:55 AM

Título: Cuidados al cambiar sprites [SOLUCIONADO]
Publicado por: DHX en Noviembre 20, 2014, 01:51:55 AM
Hola gamemakeros,

Estoy haciendo un "motor" para plataformas, tipo mario bros. Y he llegado al punto de comenzar a cambiar los sprites de prueba (cuadrados de 32x32px de un solo color), por unos más "bonitos" (personajes con brazos y piernas :P ), grandes ( no mucho, 32x40px) y animados. Pero al hacer el cambio de sprites, me ha trastocado bastantes cosas que funcionaban bien, entre ellas las colisiones. En los sprites de prueba, el punto de origen estaba centrado y en los nuevos he mantenido el punto en el centro, a pesar de que son algo más grandes.

Llevo días dándole vueltas y no me aclaro. No busco que alguien me solucione el problema ( de momento, jeje ). Solo saber, si hay que tener algún cuidado especial a la hora de hacer un cambio de sprites.

Gracias de antemano y saludos.
Título: Re:Cuidados al cambiar sprites
Publicado por: eams1986 en Noviembre 20, 2014, 03:01:16 AM
claro amigo los sprite son muy importantes a la hora de ser cambiados .
Título: Re:Cuidados al cambiar sprites
Publicado por: ivn_eze en Noviembre 20, 2014, 03:17:29 AM
pues el unico consejo que hay es prestar atención. fijarse que las mask esten del mismo modo que en el viejo sprite y asegurarse de que el sprite sigue centrado (recuerda que al momento del cambiar el sprite, el centro queda en la misma poscicion que el viejo sprite, es decir que si lo agrandas hay que si o si centrar de nuevo.
Título: Re:Cuidados al cambiar sprites
Publicado por: kostra en Noviembre 20, 2014, 02:49:45 PM
sprite_xoffset
sprite_yoffset

son las funciones que buscas?
Título: Re:Cuidados al cambiar sprites [SOLUCIONADO]
Publicado por: DHX en Noviembre 21, 2014, 03:32:21 AM
Cita de: kostra en Noviembre 20, 2014, 02:49:45 PM
sprite_xoffset
sprite_yoffset

son las funciones que buscas?

No Kostra, pero gracias por responder... igual que al resto de compañeros. Al final encontré el fallo y lo solucioné.

Resulta que mientras el player está en "idle", su sprite tiene un ancho real (pixels no transparentes) de x pixels. Pero el sprite de salto y caída, tienen 2 pixels menos de ancho. Por lo que si durante un salto, estabas junto a una pared y aún así pulsabas lateralmente hacia ella ( obviamente sin atravesarla), al caer al suelo y volver al sprite "idle"... este se encontraba metido 1 pixel en la pared. Por lo que no me dejaba volver a saltar, si no me separaba de la pared antes.

Así que, he modificado el código para que al colisionar horizontalmente deje siempre un poco más de espacio. Y vuala!!  :-[

Muchas gracias a todos.