图解 Panda3D引擎开发入门

        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

  • 11
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值