图解 Panda3D引擎开发入门

图解 Panda3D引擎开发入门
原创bcbobo21cn 最后发布于2015-04-11 21:41:26 阅读数 11676  收藏
展开
        Panda3D 是一个 3D 渲染和游戏开发框架,可以在这个框架下使用 Python 和 C++ 。Panda3D 是开源软件, 它的许可证让它可以用于任何用途, 包括商业用途。本文使用Panda3D 1.7.0版本,其最新稳定版本是1.7.2。可在官网下载最新稳定版本。Panda3D包括Windows和Linux版本,本文基于Windows。

    Panda3D 1.7.0 Windows安装包可在鄙人网盘下载:

http://pan.baidu.com/s/1sjoeS01

    不是做游戏。主要考虑以后用于展示一些行业的场景模型、设备模型之类。

一 安装

1 双击安装;

2 安装向导;

3 安装位置;

4 是否需要Egg缓存,若安装,速度快,但占内存;此处选择否;

5 安装完成;

6 开始菜单;

二 入门python程序

1

编辑一个脚本,就2句;

import direct.directbase.DirectStart
run()

然后用python运行;

出现第一个Panda窗口,如下图;

脚本所引用的库的位置如下图;

    如果对于Python基础知识还不了解;可参阅我写的博文:http://blog.csdn.net/bcbobo21cn/article/details/44980087

2 认识一下载入场景和模型

from math import pi, sin, cos

from math import pi, sin, cos
from math import pi, sin, cos
from direct.showbase.ShowBase import ShowBase
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)


        # 禁用鼠标
        self.disableMouse()
        # 载入环境模型
        self.environ = self.loader.loadModel("models/environment")
        # 设置环境模型的父实例
        self.environ.reparentTo(self.render)
self.environ.reparentTo(self.render)
self.environ.reparentTo(self.render)
        # 对模型进行比例及位置调整
# 对模型进行比例及位置调整
        self.environ.setScale(0.25, 0.25, 0.25)
        self.environ.setPos(-8, 42, 0)
        # 通知任务管理器调用SpinCameraTask控制相机
        self.taskMgr.add(self.spinCameraTask, "SpinCameraTask")
        # 载入熊猫角色
        self.pandaActor = Actor("models/panda-model",
                                     {"walk": "models/panda-walk4"})
        self.pandaActor.setScale(0.005, 0.005, 0.005)
        self.pandaActor.reparentTo(self.render)
        # 动画循环
        self.pandaActor.loop("walk")
        # 创建四幕
        PosInterval1 = self.pandaActor.posInterval(13,
                                                   Point3(0, -10, 0),
                                                   startPos=Point3(0, 10, 0))
        PosInterval2 = self.pandaActor.posInterval(13,
                                                   Point3(0, 10, 0),
                                                   startPos=Point3(0, -10, 0))
        HprInterval1 = self.pandaActor.hprInterval(3,
                                                   Point3(180, 0, 0),
                                                   startHpr=Point3(0, 0, 0))
        HprInterval2 = self.pandaActor.hprInterval(3,
                                                   Point3(0, 0, 0),
                                                   startHpr=Point3(180, 0, 0))
        # 创建情节并运行四幕
        self.pandaPace = Sequence(PosInterval1,
                                  HprInterval1,
                                  PosInterval2,
                                  HprInterval2,
                                  name="pandaPace")
        self.pandaPace.loop()
        # 定义旋转相机
    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()

    这个场景和模型是Panda3D自带的;大熊猫是panda3d自带角色。看到以上代码要认识到,所使用的库当然不是Python自身的库,是panda3d提供的用于python开发的库。

此处使用的Python是安装Panda3d时自动装上的Python,位于 C:\Panda3D-1.7.0\python。载入的模型位于安装后的C:\Panda3D-1.7.0\models。

两个python脚本代码文件下载:

http://pan.baidu.com/s/1kTqtabd
————————————————
版权声明:本文为CSDN博主「bcbobo21cn」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/bcbobo21cn/article/details/44999561

发布了16 篇原创文章 · 获赞 213 · 访问量 22万+

猜你喜欢

转载自blog.csdn.net/cxu123321/article/details/104173934
今日推荐