Panda3D/Manual/Controlar a câmera: diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
Sem resumo de edição
Sem resumo de edição
Linha 12:
Em vez disso, nós vamos escrever uma ''task'' que vai controlar a posição da câmera explicitamente. Uma ''task'' nada mais é do que uma subrotina que é chamada a cada frame. Atualize o seu código:
 
import direct.directbase.DirectStart
<source lang=python>
import from direct.directbase.DirectStarttask import Task
from direct.taskactor import TaskActor
from direct.actor import Actormath
import math
 
#Carrega nosso primeiro modelo
ambiente = loader.loadModel("models/environment")
ambiente.reparentTo(render)
ambiente.setScale(0.25, 0.25, 0.25)
ambiente.setPos(-8,42,0)
 
#Tarefa para mover a camera
def TarefaGiraCamera(task):
anguloGraus = task.time * 6.0
anguloRadianos = anguloGraus * (math.pi / 180.0)
base.camera.setPos(20*math.sin(anguloRadianos), -20.0*math.cos(anguloRadianos),3)
base.camera.setHpr(anguloGraus, 0, 0)
 
return Task.cont
 
taskMgr.add(TarefaGiraCamera, "GiraCamera")
 
run()
</source>
 
run()
 
A função '''taskMgr.add''' diz ao ''gerenciador de tarefas'' do Panda para chamar a subrotina TarefaGiraCamera a cada frame. Esta é uma subrotina que nós escrevemos para controlar a camera. Enquanto a subrotina retorna a constante '''Task.cont''', o gerenciador de tarefas vai continuar a chamá-la a cada frame.