Entonces, después de algunas horas de búsqueda en Internet, todavía tengo que encontrar una respuesta agradable sobre cómo manejar plataformas móviles en un juego de plataformas 2D. Así que decidí hacer un prototipo simple donde interactúes con 2 plataformas diferentes, una que se mueve verticalmente y otra horizontalmente. Me encantaría obtener ayuda para analizar y ver qué no funciona y cómo solucionarlo. He enviado el archivo .fla + .as archivo a continuación, acompañado con un enlace al .swf jugable.
El objetivo es hacer que el Héroe interactúe con las plataformas como si fueran objetos sólidos sobre los que pueda pararse, empujarse, saltar sobre / debajo, etc.
Los problemas con mi prototipo son estos:
Cuando te paras en la plataforma que se mueve horizontalmente, sin moverte (sin tocar ninguna tecla), el Héroe se mueve junto con la plataforma, pero con un ligero retraso, el héroe se desliza un poco hacia atrás.
Cuando te paras en la plataforma en movimiento horizontal y saltas, te mueves junto con la plataforma en el aire (algunos juegos prefieren tenerlo así, pero no se siente natural y no se quiere aquí). Lo que podría ser causado por el héroe que retiene la velocidad en el eje X desde la plataforma.
Cuando saltas hacia la parte inferior de la plataforma en movimiento vertical, mientras la plataforma se mueve hacia abajo, te hundes dentro de ella por un breve segundo. El héroe penetra como si la colisión no existiera por un momento.
Cuando saltas sobre una plataforma que se mueve verticalmente, la velocidad en el eje Y se mantiene, por lo que cuando sales de la plataforma, caes a una velocidad más alta. Con la velocidad de la velocidad retenida, se agrega + gravedad (esto se debe principalmente a que no puedo encontrar una manera de restablecer la velocidad en el eje Y a 0 cuando aterrizas en la plataforma, sin que el jugador se congele en el aire).
Soy un programador novato, así que estoy seguro de que hay MEJORES formas de hacer esto, y me encantaría escucharlos a todos. Cualquier idea sobre cómo mejorar el código u otros métodos en los que puede implementar plataformas móviles en un juego basado en Tile es bienvenida. Al final, estoy tratando de encontrar una forma sólida de manejar plataformas móviles en plataformas 2D.
SWF jugable: http://dl.dropbox.com/u/28271061/PlatformerhowtoFLA.html (moverse con las teclas de flecha, saltar con la tecla X, correr con la tecla Z)
Código fuente AS-file: http://dl.dropbox.com/u/28271061/Platformerhowto.as
SourcefileFLA: http://dl.dropbox.com/u/28271061/PlatformerhowtoFLA.fla
Si prefiere leer el código a través de Pastie en línea: http://pastie.org/2266764