| Tydres Moderador
 | | Registrado em: Domingo, 20 de Mai de 2007 | | Mensagens: 1041 | | Localização: Em algum código fonte... |
|
Enviada: Ter Mai 04, 2010 11:10 am Assunto: Panda3D Tutorial |
|
|
Olá galerinha que mora logo ali.
Escrevi este tutorial para quem tem interesse em se iniciar com a Panda3D. Esta exelente engine desenvolvida em C++ para Python. E que agora está sendo portada para Java.
Primeiro passo, Saber Python.
Um dos requisitos para saber utilizar a Panda3D e saber programar em Python.
Lá vai alguns links úteis para quem deseja aprender essa magnifica linguagem.
Depois de aprender Python vamos a um tutorial basico sobre a utilização da Panda3D.
--------------------------------------------------------------------------------------
Download da Panda3D:
http://www.panda3d.org/download.php?sdk
Download Python:
http://python.org/download/
Primeiro faça o download do sdk da panda. depois instale o mesmo em seu computador. (Lembrando que é necessario ter instalado alguma versão do Python. Não podendo ser da 3.0 para frente)
Depois de tudo instalado, estamos prontos para começar.
--------------------------------------------------------------------------------------
Iniciando a Panda3D
Para testar se vc instalou a Panda3D corretamente vamos iniciar a mesma.
Abra o Idle e insira o seguinte código:
| Código: |
#Importando os modulos Panda3D
import direct.directbase.DirectStart
#Executando
run() |
E salve o arquivo como TutorialPanda1.py
Para executar vá ao Terminal(Mac ou Linux) ou CMD(No Windows) entre na pasta onde vc salvou o arquivo TutorialPanda1.py e execute o comando:
ppython TutorialPanda1.py.
Caso ocorra tudo bem uma janela Panda será aberta.
--------------------------------------------------------------------------------------
Carregando e usando modelos 3D
A panda usa modelos 3d do tipo eggs. Para converter seus modelos em eggs basta baixar o pluggin para o software 3d desejado e fazer a exportação.
Vou utilizar o modelo de uma bola para o tutorial. "ball.egg"
Veja como e simples importar e posicionar um modelo na Panda3D.
| Código: |
#Importando os modulos Panda
import direct.directbase.DirectStart
from direct.showbase.DirectObject import DirectObject
#Class Bola
class Bola(DirectObject):
def __init__(self):
#Carregando o modelo
self.modelo3D = loader.loadModel("ball")
#Linka o objeto ao renderizador
self.modelo3D.reparentTo(render)
#Posiciona o objeto
self.modelo3D.setPos(0,10,0)
#Escala o modelo
self.modelo3D.setScale(0.15)
#Rotaciona o objeto
self.modelo3D.setHpr(0,0,0)
#Declara uma variavel do tipo Bola
bola = Bola()
#Executa
run() |
Se ocorrer tudo certo vc deve ver seu objeto no centro da tela e ja texturizado.
--------------------------------------------------------------------------------------
Movimentando o objeto
Agora vamos ver como movimentar nosso objeto por meio de teclas.
| Código: |
#Importando os modulos Panda
import direct.directbase.DirectStart
from pandac.PandaModules import *
from direct.showbase.DirectObject import DirectObject
from direct.task.Task import Task
#Class Bola
class Bola(DirectObject):
def __init__(self):
#Carregando o modelo
self.modelo3D = loader.loadModel("ball")
#Linka o objeto ao renderizador
self.modelo3D.reparentTo(render)
#Vetor de posição do objeto
self.posicao = Vec3(0,10,0)
#Posiciona o objeto
self.modelo3D.setPos(self.posicao)
#Escala o modelo
self.modelo3D.setScale(0.15)
#Rotaciona o objeto
self.modelo3D.setHpr(0,0,0)
#Array das teclas
self.teclas = {"cima" : 0, "baixo" : 0, "direita" : 0, "esquerda" : 0}
#Seta teclas a serem usadas
self.accept("arrow_up", self.setKey, ["cima",1])
self.accept("arrow_up-up", self.setKey, ["cima",0])
self.accept("arrow_down", self.setKey, ["baixo",1])
self.accept("arrow_down-up", self.setKey, ["baixo",0])
self.accept("arrow_right", self.setKey, ["direita",1])
self.accept("arrow_right-up", self.setKey, ["direita",0])
self.accept("arrow_left", self.setKey, ["esquerda",1])
self.accept("arrow_left-up", self.setKey, ["esquerda",0])
#Adiciona uma função a lista de tasks
self.gameTask = taskMgr.add(self.moveBall, "moveBall")
self.gameTask.last = 0
#Seta o estado das teclas
def setKey(self, key, val):
self.teclas[key] = val
#Função responsavel por movimentar a bola
def moveBall(self,task):
deltaTime = task.time - task.last
task.last = task.time
#Seta a nova posição do objeto
if ( self.teclas["cima"] == 1):
self.posicao += Vec3(0,0,0.1)
if ( self.teclas["baixo"] == 1):
self.posicao += Vec3(0,0,-0.1)
if ( self.teclas["direita"] == 1):
self.posicao += Vec3(0.1,0,0)
if ( self.teclas["esquerda"] == 1):
self.posicao += Vec3(-0.1,0,0)
self.modelo3D.setPos(self.posicao)
return Task.cont
#Declara uma variavel do tipo Bola
bola = Bola()
#Executa
run() |
Apos executar este codigo, vcs podem perceber que agora o nosso objeto se movimenta a todos os angulos com as teclas.
--------------------------------------------------------------------------------------
Bom. Espero que tenha ajudado. Continuem estudando. no forum da Panda aqui tem um Topico com varios sites para poderem estudar. Bom estudo galera. Abraço. _________________
 |
|