Panda3D学习 (1):小行星示例程序

这是第一篇关于Panda3D的学习笔记,不求能给大家以帮助,只希望记录下自己学习的过程。

今天学习的是panda3D自带的第一个示例程序,小行星。相比起完整的把所有语法看一遍,我更喜欢从实践中学习。

“本示例程序显示如何使用任务。任务是在程序的每一帧期间运行的函数。Panda3D在任何程序中运行一些任务,但可能会添加其他任务。对于本教程,除了检查碰撞之外,还将使用任务来更新船舶,小行星和子弹的位置。要做到这一点,您需要知道的所有数据是已经过了多少时间以及每个对象的速度” 这是官方文档的说法。


1. dt = globalClock.getDt()

用于记录上一帧结束至今所经历的时间

2. 任务

这是示例程序的核心内容,也是我今天学习的重点,对照https://www.panda3d.org/manual/index.php/Tasks进行学习。

任务是在应用程序执行时每帧调用一次的特殊功能。

任务是用函数或类方法定义的; 此功能是该任务的主要入口点,在任务运行时将在每帧中调用一次。默认情况下,该函数接收一个参数,它是任务对象; 任务对象携带有关任务本身的信息,例如任务已运行的时间量。

from direct.task import Task  导入Task类

返回值:

Panda3D学习 (1):小行星示例程序_第1张图片

task的一些相关属性

Panda3D学习 (1):小行星示例程序_第2张图片

tskMgr 任务管理器

添加任务及延时任务

taskMgr.add(exampleTask, 'MyTaskName')
taskMgr.doMethodLater(delayTime, myFunction, 'Task Name')

例程实例:

taskMgr.add(self.gameLoop, "gameLoop")

def gameLoop(self, task):

return Task.cont

你可能感兴趣的:(panda3d,python,panda3d)