Marzo 24, 2014, 09:22:34 PM Ultima modificación: Marzo 25, 2014, 04:24:06 AM por darkanse
Hola muy buenas, estoy haciendo un videojuego del género "endless running". Para ello lo que he hecho ha sido colocar mi personaje en una posición de la que no se va a "mover", simplemente saltar y para dar el efecto de que está corriendo, los objetos se mueven automáticamente a la izquierda. Esto lo hago para que la cámara siempre se mantenga estática en cuanto a horizontalidad y el personaje siempre quede en una posición más atrasada, para poder ver lo que le viene delante. El problema, es que el fondo quiero hacerlo mediante Tiles (no mediante background, ya que los tiles me dejan más libertad para distribuir a mi gusto) me gustaría que los tiles, al igual que los objetos, se movieran automáticamente a la izquierda en una velocidad de 7. ¿Cómo hago esto?

Gracias ;)

Pues yo iría por la opción de usar fondo, porque es mucho más rápido, si usas tiles tienes que mover tile por tile para dar el efecto de que se avanza, y si son muchos tiles....

Pero bueno, lo que preguntas se puede hacer usando

tile_set_position(id,x,y)

y ajustando el valor de x

Probablemente seria mejor usar tile_layer_shift, que mueve todos los tiles en una misma profundidad, con tile_set_position tienes que encontrarlos y moverlos uno por uno, calculando la posición previa que tenían.

Con tile_layer_shift simplemente le dices cuanto quieres que se muevan y listo, por ejemplo:

tile_layer_shift(1000000,-7,0)

Esto hace que los tiles se muevan 7 pixeles a la izquierda, donde 1000000 es la profundidad de la capa de tiles, -7 es la distancia de x que debe moverse y 0 es la distancia de y que debe moverse.

uff es cierto. Me había olvidado totalmente de las capas de tiles, intuía que había un método más eficiente, pero jamás me acordé de esto.

Finalmente he optado por mover una capa completa de tiles, así no tengo que ir tile por tile usando eso, tile_layer_shift(1000000,-7,0)

el problema es que simplemente me lo mueve 7 a la izquierda y nada más, pero yo busco que sea una velocidad constante. ¿Algo que deba modificarle?

gracias de nuevo  :-[

Ok, no te voy a decir exactamente lo que debes hacer porque parte de la idea de este foro es que aprendas y experimentes, no que si simplemente no te sale algo a la primera vengas a preguntar.

Entonces, si la función mueve los tiles 7 a la izquierda una vez y nada más, necesitas que la función se ejecute constantemente, donde pondrías un código que debe ejecutarse constantemente?

¿En un evento step quizas? estoy muy pegado en esto, soy bastante nuevo, pero me ha encantado tu idea, necesito aprender. ¿Respuesta correcta?


corroborado! funciona a la perfección! muchísimas gracias compañeros ;)