segunda-feira, 16 de junho de 2008

Ok, depois de quase um mes parado neste blog fantasma ( =::[ ) volto a dar noticias!

Como contava, o curso tinha acabado, e vi que havia uma luz ao fim do túnel!

Primeiro projeto:
Uma apresentação que mostrasse a terra girando em volta do sol, para mostrar como são formadas as 4 estações do ano.

Ok, um projeto bem simples, que na verdade, já havia sido implementado em flash! O meu trabalho era transportar ele para XNA utilizando os recursos gráficos que ele oferece.

Utilizando os exemplos que geramos durante o curso, consegui colcar 2 bolinhas texturizadas na tela, girando uma em volta da outra!

Foi ai que comecei a ver os problemas envolvidos na programação de jogos.

Ao girar a terra, eu apenas aplicava a funcao Matrix.CreateRotationZ(angulo).
Isso gira de fato um objeto, e mudando o pivo dele, posso fazer ele descrever um circulo...

Qual o problema disso? Ao girar, ele nao fica orientado corretamente! Observe:



quando deveria ser:




Gastem um tempo imaginando, e vão entender!

Pois bem, agora a funçãozinha já não resolvia mais meu problema!
Solução?

Matemática!!

Utilizando seno e cosseno, eu posso descrever uma circunferência, e simplismente atualizar meu planeta terra sobre essa posição, sem alterar sua orientação.
Agora eu não estava mais rotacionando a terra, eu estava transladando sua posição, e essa translação descrevia uma circunferência =DD

Até a próxima pessoal!