GameDev Brasil
A comunidade brasileira de desenvolvimento e programação de jogos.
 
Home - Fórum - Tutoriais - Projetos - Galeria - Contato

 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar   PerfilPerfil   EntrarEntrar 

Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   

Panda3D Tutorial

 
Novo Tópico   Responder Mensagem    GameDev Brasil -> Tutoriais de Programação
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Tydres
Moderador
Registrado em: Domingo, 20 de Mai de 2007
Mensagens: 1041
Localização: Em algum código fonte...
MensagemEnviada: Ter Mai 04, 2010 11:10 am    Assunto: Panda3D Tutorial Responder com Citação

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.
Citação:
Links:
http://www.python.org.br/wiki/InicieSe //Tutorial do site Python.org.br
http://www.python.org/doc/ //Site oficial Python.org
http://www.pythonbrasil.com.br/moin.cgi/DocumentacaoPython?action=AttachFile&do=get&target=python24.pdf
http://www.python.org.br/wiki/DocumentacaoPython


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.
_________________



Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar Email Visitar a homepage do Usuário Yahoo Messenger MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    GameDev Brasil -> Tutoriais de Programação Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibído.
Responder Tópicos Proibído
Editar Mensagens: Proibído.
Excluir Mensagens: Proibído.
Votar em Enquetes: Proibído.


Powered by phpBB © 2001, 2002 phpBB Group
Traduzido por: Suporte phpBB
Igloo Theme Version 1.0 :: Created By: Andrew Charron