Então, depois de algumas horas de pesquisa na internet, ainda não encontrei uma resposta agradável sobre como lidar com plataformas móveis em um jogo de plataforma 2D. Decidi fazer um protótipo simples, onde você interage com 2 plataformas diferentes, uma que se move verticalmente e outra horizontalmente. Eu adoraria alguma ajuda para dissecar e ver o que não está funcionando e como corrigi-los. Enviei o arquivo .fla + .as abaixo, acompanhado de um link para o .swf reproduzível.
O objetivo é fazer com que o Herói interaja com as plataformas como se fossem objetos sólidos nos quais ele possa se apoiar, empurrado ao lado, pular / embaixo etc.
Os problemas com o meu protótipo são estes:
Quando você fica na plataforma em movimento horizontal, sem se mover (sem tocar em nenhuma tecla), o Herói se move junto com a plataforma, mas com um pequeno atraso, fazendo com que o herói recue um pouco.
Quando você fica na plataforma que se move horizontalmente e pula, você se move junto com a plataforma no ar (alguns jogos preferem tê-lo assim, mas não parece natural e não é desejado aqui). O que pode ser causado pelo herói reter a velocidade no eixo X da plataforma.
Quando você pula para o lado inferior na plataforma em movimento vertical, enquanto a plataforma está se movendo para baixo, você afunda por um breve segundo. O herói penetra como se a colisão não existisse por um momento.
Quando você pula na plataforma em movimento vertical, a velocidade no eixo Y é mantida; portanto, quando você sai da plataforma, cai em uma velocidade mais alta. Com a velocidade da velocidade retida, + a gravidade adicionada (isso ocorre principalmente porque não consigo descobrir uma maneira de redefinir a velocidade no eixo Y para 0 quando você pousa na plataforma, sem o jogador congelar no ar).
Sou um programador iniciante, por isso tenho certeza de que existem maneiras MELHORES de fazer isso e gostaria de ouvi-las todas. Quaisquer idéias sobre como melhorar o código ou outros métodos nos quais você pode implementar plataformas móveis em um jogo baseado em til são bem-vindas. No final, estou tentando encontrar uma maneira sólida de lidar com plataformas móveis em plataformas 2D.
SWF reproduzível: http://dl.dropbox.com/u/28271061/PlatformerhowtoFLA.html (Mover com as setas, Ir com a tecla X, Executar com a tecla Z)
Arquivo AS do código-fonte: http://dl.dropbox.com/u/28271061/Platformerhowto.as
SourcefileFLA: http://dl.dropbox.com/u/28271061/PlatformerhowtoFLA.fla
Se você preferir apenas ler o código através do Pastie online: http://pastie.org/2266764