这是第一篇关于Panda3D的学习笔记,不求能给大家以帮助,只希望记录下自己学习的过程。
今天学习的是panda3D自带的第一个示例程序,小行星。相比起完整的把所有语法看一遍,我更喜欢从实践中学习。
“本示例程序显示如何使用任务。任务是在程序的每一帧期间运行的函数。Panda3D在任何程序中运行一些任务,但可能会添加其他任务。对于本教程,除了检查碰撞之外,还将使用任务来更新船舶,小行星和子弹的位置。要做到这一点,您需要知道的所有数据是已经过了多少时间以及每个对象的速度” 这是官方文档的说法。
1. dt = globalClock.getDt()
用于记录上一帧结束至今所经历的时间
2. 任务
这是示例程序的核心内容,也是我今天学习的重点,对照https://www.panda3d.org/manual/index.php/Tasks进行学习。
任务是在应用程序执行时每帧调用一次的特殊功能。
任务是用函数或类方法定义的; 此功能是该任务的主要入口点,在任务运行时将在每帧中调用一次。默认情况下,该函数接收一个参数,它是任务对象; 任务对象携带有关任务本身的信息,例如任务已运行的时间量。
from direct.task import Task 导入Task类
返回值:
task的一些相关属性
tskMgr 任务管理器
添加任务及延时任务
taskMgr.add(exampleTask, 'MyTaskName')
taskMgr.doMethodLater(delayTime, myFunction, 'Task Name')
例程实例:
taskMgr.add(self.gameLoop, "gameLoop")
def gameLoop(self, task):
return Task.cont