Estou prestes a começar a desenvolver um jogo de rolagem lateral, onde o objetivo do jogador é viajar o mais longe que puder no eixo horizontal antes de pousar. Note que eu nunca preciso voltar ao eixo horizontal.
Estou desenvolvendo isso com o AndEngine para Android, que usa OpenGL e Box2d.
Antes de começar, preciso decidir algo importante: devo usar o mundo ao redor do jogador para simular movimento ou realmente mover o jogador e segui-lo com os recursos da câmera do mecanismo de jogo?
Ambas as abordagens parecem ter diferentes pontos fortes e fracos, então não sei qual é considerada a melhor. Por exemplo, o que tornaria mais fácil adicionar power-ups ao longo do caminho e ter um bom plano de fundo animado?
Obrigado!
Respostas:
Mova a câmera (conectada ao seu aparelho). Eu imagino que seu mundo tenha vários objetos, como inimigos. Se você seguisse movendo o mundo, teria que percorrer todos esses objetos para atualizar suas posições sempre que o mundo se movesse.
Se você mover o player e conectar a câmera ao player, haverá um uso mínimo de recursos. O jogo chegará à sua fase de renderização, percorrerá tudo de uma vez, como acontece em todos os quadros, e os desenhará na posição - camera.position. A posição da câmera sempre seria igual à posição dos seus jogadores nesse caso.
fonte
camera.setChaseEntity(player);
para conseguir isso.Eu sempre movo a câmera e a recomendo - há muitas razões pelas quais prefiro isso, mas a mais significativa provavelmente se resume a isso:
Se você mover a câmera e o player, são apenas duas entidades que precisam ser atualizadas para rolar a tela.
Se você mover o mundo inteiro sempre que a tela precisar rolar, isso abrange um número desconhecido e possivelmente grande de entidades que precisarão ser atualizadas.
fonte
É bastante trivial, na verdade, não faz diferença das coisas que você descreveu.
Você move o plano de fundo além da câmera e do player, ou move o player e a câmera com ele. Suponho que há menos uma coisa a fazer se você apenas mover o fundo.
Embora eu suponha que, se você mudar o plano de fundo, terá que criar os captadores e inimigos, o que novamente é trivial, mas é algo para se pensar.
Pessoalmente, eu mudaria o jogador porque eu só gosto de fazer coisas de uma maneira mais realista.
fonte
Outras respostas são boas, mas eu gostaria de acrescentar alguns pontos do que é melhor, na esperança de ajudar alguém que tenta tomar a mesma decisão para um projeto diferente.
Movendo o Player:
player.x += 5;
(pseudocódigo).Movendo o mundo:
0
.0
.No final do dia, depende do projeto. Se alguém está criando um clone de Mario original, mover o mundo pode ser complicado, enquanto mover o jogador não cria muitos problemas. Porém, desejando fazer um grande jogo de mundo aberto, pode ser melhor mudar o mundo.
fonte