Hoje fiz um primeiro teste de movimentação com física e colisão para o meu mais novo projeto de jogo (logo mais passo detalhes sobre ele). Testei entre vários os tipos, aquele que a câmera segue de trás (Resident Evil 4 e 5, Uncharted, Tomb Raider…), com mouse para atacar e o teclado para andar (DeadNation, Alien Breed…), com o mouse para andar e atacar (Diablo, World of Warcraft…) e por fim teclado para andar e atacar (Resident Evil 1, 2 e 3).
A que eu mais me identifiquei foi a última, a qual você usa duas teclas para rotacionar o personagem e outras duas para andar para frente e para trás, assim como no clássico Resident Evil.
Após fazer alguns testes, segue o script da movimentação em LUA para Shiva 3D:
if ( nMX ~= 0 or nMY ~= 0 ) then object.rotate ( hModelObj, 0, nMX, 0, object.kGlobalSpace ) local dX, dY, dZ = object.getDirection ( hModelObj, object.kGlobalSpace ) dynamics.addForce ( hDynObj, nMY * 300 * dX, 0, nMY * 300 * dZ, object.kGlobalSpace ) dynamics.setLinearDamping ( hDynObj, 5 ) end object.matchTranslation ( hModelObj, hDynObj, object.kGlobalSpace )
Observações:
– nMX e nMX variam entre -1, 0 e 1 conforme as teclas WASD estão apertadas;
– hModelObj é o modelo do personagem e kDynObj é o objeto de colisão.
Confesso que tenho uma inclinação a escolher a movimentação dos jogos que eu mais gostei, porém sei que não são as melhores e por isso quero a opinião de vocês.
Este tipo de movimentação que voce escolheu é considerado meio ultrapassado por deixar a movimentação travada e lenta, mas mesmo assim eu tambem acho esta forma um clássico! hehehe. O padrao mais comum hoje é da camera seguir por tras mesmo.
Eu gosto! =)
Bom, eu concordo com o Andre Nunes. Eu também estou com um projeto de jogo e o mesmo trabalhará com esse tipo de movimentação também, mesmo por que o estilo com camera no ombro do personagem ao meu ver não se encaixa bem ao estilo RPG (o qual estou trabalhando). Mas você tem que determinar isso de acordo com o estilo de jogo que está desenvolvendo.
É verdade, vou fazer um teste de movimentação com auxílio do mouse para atirar.