Intervalos
Intervalos são tarefas que alterar uma propriedade de um valor para outro durante um período de tempo especificado. Iniciando um intervalo efetivamente inicia um processo de fundo que modifica a propriedade durante o período de tempo especificado.
Seqüências
Seqüências São tarefas que executam um intervalo após o outro.
O Programa
Atualização do Código
O próximo passo é fazer com que o panda se movam para trás e para frente. Atualize o código para o seguinte :
from math import pi, sin, cos
from direct.showbase.ShowBase import ShowBase
from direct.task import Task
from direct.actor.Actor import Actor
from direct.interval.IntervalGlobal import Sequence
from panda3d.core import Point3
class MyApp(ShowBase):
def __init__(self):
ShowBase.__init__(self)
# Disable the camera trackball controls.
self.disableMouse()
# Load the environment model.
self.environ = self.loader.loadModel("models/environment")
# Reparent the model to render.
self.environ.reparentTo(self.render)
# Apply scale and position transforms on the model.
self.environ.setScale(0.25, 0.25, 0.25)
self.environ.setPos(-8, 42, 0)
# Add the spinCameraTask procedure to the task manager.
self.taskMgr.add(self.spinCameraTask, "SpinCameraTask")
# Load and transform the panda actor.
self.pandaActor = Actor("models/panda-model",
{"walk": "models/panda-walk4"})
self.pandaActor.setScale(0.005, 0.005, 0.005)
self.pandaActor.reparentTo(self.render)
# Loop its animation.
self.pandaActor.loop("walk")
# Create the four lerp intervals needed for the panda to
# walk back and forth.
pandaPosInterval1 = self.pandaActor.posInterval(13,
Point3(0, -10, 0),
startPos=Point3(0, 10, 0))
pandaPosInterval2 = self.pandaActor.posInterval(13,
Point3(0, 10, 0),
startPos=Point3(0, -10, 0))
pandaHprInterval1 = self.pandaActor.hprInterval(3,
Point3(180, 0, 0),
startHpr=Point3(0, 0, 0))
pandaHprInterval2 = self.pandaActor.hprInterval(3,
Point3(0, 0, 0),
startHpr=Point3(180, 0, 0))
# Create and play the sequence that coordinates the intervals.
self.pandaPace = Sequence(pandaPosInterval1,
pandaHprInterval1,
pandaPosInterval2,
pandaHprInterval2,
name="pandaPace")
self.pandaPace.loop()
# Define a procedure to move the camera.
def spinCameraTask(self, task):
angleDegrees = task.time * 6.0
angleRadians = angleDegrees * (pi / 180.0)
self.camera.setPos(20 * sin(angleRadians), -20.0 * cos(angleRadians), 3)
self.camera.setHpr(angleDegrees, 0, 0)
return Task.cont
app = MyApp()
app.run()
Quando o pandaPosInterval1 intervalo é iniciado, ele irá gradualmente ajustar a posição da panda de (0 , 10, 0) para (0 , -10 , 0) ao longo de um período de 13 segundos. Da mesma forma, quando o pandaHprInterval1 intervalo é iniciado, o título do panda vai girar 180 graus em um período de 3 segundos.
O pandaPace seqüência acima faz com que o panda se mover em linha reta, por sua vez se move, em linha reta oposta e, finalmente, virar novamente . O código pandaPace.loop () faz com que a seqüência a ser iniciado em modo de repetição.
Executar o Programa
O resultado de tudo isso é fazer com que o panda ao ritmo frente e para trás de uma árvore para outra.
Isto conclui o "A Panda Olá Mundo " tutorial. Para mais informações sobre qualquer parte do motor Panda3D , consultar o resto do Manual. Se você ainda tiver dúvidas, não hesite em perguntar sobre o Panda3D Fórum ou na Panda3D canal de IRC.
Divirta-se com o desenvolvimento de aplicações 3D Panda3D.
Os seguintes são alguns dos exemplos e tutoriais contribuídos pela comunidade . Note-se que uma vez que estes programas são por particulares sem vínculo com a equipe de desenvolvimento do núcleo Panda3D , não podemos garantir que elas sejam válidas em cada versão do Panda3D .
Exemplos
lettier ( IPKnightly ):
Bouncing Box
Quarto Andar
PyGame Sound
ECAPS ( Fighter Space)
FPS Cálculo
Boids
Voos Espaciais ( Lunar Lander 3D )
Nota: nem todos os exemplos de trabalho com a última versão Panda3D . Por favor, envie uma solicitação para uma atualização para contact@lettierishere.com.
TipToe :
borda da tela de monitoramento
Amarelo e bigfoot29 :
bigfoot29 :
pequeno chat servidor / cliente
Tutoriais
Aamesxdavid :
uso Audio tutorial (download Zip)
Fero63 :
Desenvolver um First Person Câmera com Panda3D e C + + (download pdf)
tutoriais em vídeo pela comunidade contribuiu Panda3D
Estes tutoriais foram gravadas e publicadas pelos usuários Panda3D .
Blender2Panda : normalmaps
Este vídeo do YouTube mostra como fazer normalmapping com o Blender e exportá-lo para panda3d .
Elenco:
bicarbonato de mapas normal de highpoly o modelo lowpoly
aplicação do normalmaps e visualização no Blender
exportação de modelo e textura utilizando o exportador de frango e uma sessão de PView f modelo
Blender2Panda : Tags e Dummys
Este vídeo do YouTube mostra como fazer dummys e tags em Blender e exportá-lo para panda3d .
Elenco:
criação e uso de objetos dummy
adicionar tags
exportador
usando dummys e tags em panda + dummys recursiva
Blender2Panda : Animações
Este vídeo do YouTube mostra como fazer animação no Blender e exportá-lo para panda3d .
Elenco:
modelagem low poly
criação da armadura
conectar malhas
animação armadura de base
exportador
Vídeo aulas pela Disney (em inglês)
David Rose , de Walt Disney Studio VR , ocasionalmente detém classes com base nos fundamentos eo funcionamento do Panda3D . Abaixo estão algumas dessas palestras.
Personagens Parte I
Gravado 08 de outubro de 2003
Ovos, personagens e atores
Personagens Parte II
Gravado 22 de outubro de 2003
Esta é uma recapitulação de animação de personagens no Panda3D .
PStats
Gravado 24 de fevereiro, 2004
Demonstrando o uso da Panda 's built-in ferramenta de análise de desempenho.
Threading
Gravado 26 março, 2008
O actual estado da arte em multiprogramação no Panda.
Windows, amortecedores, e câmeras
Gravado 9 de abril de 2008
Fundamentos do gerenciamento de janelas e buffers offscreen , e conectá-los até as câmeras para renderização.
Scene Graph
Gravado 02 de abril de 2008
Fundamentos da Panda gráfico da cena , os truques que você pode fazer com ele, e como é aplicada.
DistributedObjects
Gravado 16 de abril de 2008
Como usar o sistema da Panda DistributedObject , para o desenvolvedor Python.
DistributedObjects eo servidor OTP
Gravado 23 de abril de 2008
sistema Panda DistributedObject , e como se relaciona com a OTP VR Studio Server.
O servidor OTP
Gravado 30 de abril de 2008
O que está dentro da OTP Studio VR Server ( não faz parte do Panda ).
O Sistema RPC
Gravado 07 de maio de 2008
Tudo sobre Panda sistema de configuração de tempo de execução .
Colisões
Gravado 14 mai 2008
Como usar o Panda 's built-in sistema de colisão, e como ele funciona.
ovo palettize
Gravado 21 de maio de 2008
Como usar palettize ovo, e por que você quereria .
interrogar
Gravado 04 de junho de 2008
Como interrogar obras para gerar Python Panda / C + + interface .
ODE em Panda
Gravado 18 de junho de 2008
Como Panda 's built-in de integração ODE se destina a ser usado.
Dentro de um ator
Gravado 02 de julho de 2008 Como a classe Agente é executado, e como utilizá-lo.
fluxo Plugin
Gravado 31 de agosto de 2010 O Panda3D plugin web design e fluxo.
Panda3D Manual: Programação com Panda3D
Parte superior do formulário
Prev
|
Topo
|
Próximo
|
Pitão/C + +
|
|
Parte inferior do formulário
O Programação com Panda secção do manual tentativas para enumerar todas as funcionalidades diferentes que fornece Panda3D .
Este manual não pretende ser completa , no sentido de lista de cada classe , função e método fornecido pelo Panda3D . Se é isso que você está procurando , vá para o Seção de Referência em vez disso.
O objetivo deste manual é a seguinte:
1. Lista de todos os recursos gerais do Panda3D ,
2. Ajudá-lo a compreender o que estes efeitos servem,
3. Dê-lhe uma compreensão geral de como construir jogos em Panda3D .
Com o tempo, porém, terá de completar o conhecimento proporcionado por este manual , estudando o Seção de Referência.
Visão global
Se você já estiver em velocidade de cruzeiro com Python, o código a seguir pode ser parecido com uma caixa preta :
A classe ShowBase herda DirectObject . No Linux, o arquivo relevante pode ser encontrada em:
/ usr/share/panda3d/direct/showbase /
No Windows, o código é (por padrão) localizado em:
C: \ Panda3D - 1.X.X \ directo \ src \ showbase
Um item importante , entretanto, é criado um gerenciador de tarefas como base taskmgr. A função run () é na verdade uma única chamada para lançar este gerenciador de tarefas.
Variáveis globais com __builtin__
Algumas variáveis-chave utilizadas em todos os scripts Panda3D são realmente atributos de instância ShowBase . Aqui está o código pertinente fazer essas atributo no escopo global :
Este é o local onde os objetos usados base, render, render2d, câmera, mensageiroE taskmgr são criados. Há mais variáveis, tais adicionado __builtin__. Consulte o código se você quiser encontrá-los todos .
Note que esta forma de expor esses atributos torná-los disponíveis globalmente , embora estes não serão devolvidos por uma chamada para a função interna dir ().
Compartilhe com seus amigos: |