Necesito agregar un fondo de desplazamiento a mi juego, la imagen es 512x512px. Es para un juego de autos con tráfico en dos direcciones y quiero poder cruzar hacia el lado opuesto y conducir contra el tráfico también. El juego está en modo vertical y yo uso cocos2d.
¿Cómo puedo hacer esto de la mejor manera posible?
assets
art
cocos2d-iphone
level-design
David Holmes
fuente
fuente
Respuestas:
Básicamente, crearía un mapa de mosaicos de 2x2 donde los mosaicos son 512x512 y son todos iguales. Desplácese como lo haría normalmente, pero tan pronto como X supere 512 reste 512 (o haga un módulo 512, pero tenga cuidado con los números negativos), lo mismo para Y. Entonces, en lugar de un poli, dibuje 4, aunque solo 1 será visible la mayoría de las veces, pero en los casos fronterizos, los 4 son visibles (cuando baja 400 y 400 a la derecha, por ejemplo). De esta manera, debería desplazarse para siempre.
Por supuesto, también puede usar 4 sprites en lugar de un mapa de mosaico. Uno en worldPos, uno en worldPos + (512,0), uno en worldPos + (0,512) y uno en worldPos + (512,512).
Asegúrese de que worldPos sea siempre el módulo 512 y, de nuevo, debería desplazarse para siempre.
Editado para agregar un código:
probado, sin sintaxis comprobada.
Muy codificado para resolver este problema. Sería mejor con una matriz real para un mapa, pero para este problema específico esto debería funcionar.
Asume que 0,0 es la esquina superior izquierda de la pantalla.
fuente
Si te entiendo correctamente, puedes crear un conjunto de imágenes. Cada imagen tiene un punto de entrada y un punto de salida. Para facilitar las cosas, puede hacer que todos los puntos de entrada y salidas salgan de la misma ubicación. Luego, puede pasar aleatoriamente entre diferentes imágenes para que el jugador no encuentre un nivel completamente redundante. Si desea mezclar un poco las cosas, puede crear imágenes que tengan diferentes entradas y salidas. Solo tendrá que trabajar un poco más para asegurarse de que la salida de una imagen coincida con la entrada de la siguiente.
fuente