栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

panda3d场景的主要状态

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

panda3d场景的主要状态


    场景的状态包括位置、方向、缩放比例、物体朝向、颜色、可见性、透明度、相机等。

    最常改变的是位置和方向。
    panda3d的默认坐标系:X向右,Y向前,Z向上。
    对象方向使用欧拉角度坐标;由航向(Heading|Yaw)、俯仰(Pitch)、滚动(Roll)构成。

    这两句设置载入场景的位置和缩放比例;
    self.environ.setScale(0.25, 0.25, 0.25)
    self.environ.setPos(-8, 42, 0)
    缩放比例可分别设置X、Y、Z方向的;

    self.taskMgr.add(self.spinCameraTask, "SpinCameraTask")
    这句应该是每帧改变相机的位置和方向;

    spinCameraTask,这个是自己写的函数;python的语法看上去和C#和C++不同;

    taskMgr,这个应是每帧调用的一个东西;

    看一下手册;

Tasks are subroutines (functions) that you write that get called by Panda every frame or every specified amount of time. Event handlers are subroutines that you write that get called by Panda when certain special events occur. 
任务是一个你自己写的子路由函数,被Panda每帧调用,或者指定的时间到达调用。......;
Together, these two mechanisms enable you to update your Panda world between rendering steps.
这两个机制使你能更新你的Panda场景,在渲染的步骤之间。

这函数每帧被调用,改变相机的位置和方向;这样场景就在旋转;
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

setPos,改变位置;
setHpr,改变方向;
setHpr的三个参数是:Yaw,Pitch,Roll;

self是啥我还没搞懂;可能是ShowBase类的一个实例;有时间学习一下python语法;
class MyApp(ShowBase):
    def __init__(self):
        ShowBase.__init__(self)

只载入场景;

载入自己的egg模型;位置、方向、缩放比例自己调整;

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/849546.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号