A comunidade brasileira de desenvolvimento e programação de jogos.
Bem-vindo: Qui Jun 21, 2018 10:25 pm

Todos os horários são GMT - 3 horas




Criar novo tópico Responder  [ 2 mensagens ] 
Autor Mensagem
 Título: Panda3D Tutorial
MensagemEnviado: Ter Mai 04, 2010 11:10 am 
Offline
Membro veterano
Avatar do usuário

Registrado em: Dom Mai 20, 2007 8:42 am
Mensagens: 1114
Localização: Belo Horizonte
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:


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

Imagem

--------------------------------------------------------------------------------------

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.

Imagem

--------------------------------------------------------------------------------------

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.

_________________
Imagem


Voltar ao topo
 Perfil  
 
 Título: Re: Panda3D Tutorial
MensagemEnviado: Seg Mai 07, 2018 10:16 pm 
Offline
Membro veterano

Registrado em: Qui Mai 03, 2018 12:25 am
Mensagens: 4731
ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422
ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422
ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422
ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422
ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422
ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422
ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422
ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422
ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422
ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422
ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422ia4422
ia4422


Voltar ao topo
 Perfil  
 
Exibir mensagens anteriores:  Ordenar por  
Criar novo tópico Responder  [ 2 mensagens ] 

Todos os horários são GMT - 3 horas


Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante


Enviar mensagens: Proibido
Responder mensagens: Proibido
Editar mensagens: Proibido
Excluir mensagens: Proibido
Enviar anexos: Proibido

Ir para:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduzido por: Suporte phpBB