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

panda3d python教程_图解 Panda3D引擎开发入门相关推荐

  1. 游戏引擎开发入门教程_v20210102

    游戏引擎(Game Engine)是一款游戏的"发动机",是游戏的核心部件,同时也是一个大型软件系统.游戏画面是否绚丽和流畅,游戏场面是否震撼和真实,这些都是由引擎决定的. 从编程 ...

  2. 游戏引擎与游戏引擎开发入门

    早想写一点游戏设计的文章与大家交流,一是经验的问题,二是公司正在紧张的游戏制作期,实在抽不出多少时间,一直没有动手,今天忽然头脑发热,写了一段,以后准备陆续写一些游戏创意,策划,制作,流程管理,和制作 ...

  3. 图解 Panda3D引擎开发入门

    Panda3D 是一个 3D 渲染和游戏开发框架,可以在这个框架下使用 Python 和 C++ .Panda3D 是开源软件, 它的许可证让它可以用于任何用途, 包括商业用途.本文使用Panda3D ...

  4. panda3d python教程_panda3d 入门.docx

    panda3d 入门 PANDA3D入门----------古道天马前言这个是我自学的总结.因为刚开始看PANDA3D的教程,发现在看天书,静下心来学后,感觉其实是教程不够深入浅出,没有照顾我们这些一 ...

  5. 微软 python教程_最强福利——来自微软的Python学习教程(开发指南)

    各位小伙伴们,大家有多久没有发现柳猫这么勤奋的更新啦~ 今天给小伙伴们带来微软的官方福利,你没看错,就是来自微软的官方Python学习教程(开发指南)~ 之前微软上线过一套 Python 教程< ...

  6. 单片机python教程_如何入门单片机/嵌入式

    之前回答的一个单片机入门的问题,感觉脉络还算完整,遂把它单独整理出来. 大一学的单片机,本科玩了几年嵌入式,做过智能家居,智能小车,示波器,开关电源等等,后来工作(本人芯片行业)以后就没搞了,但是这段 ...

  7. 从头开始学python教程_怎样开始自学Python?

    Python是一个通用编程语言,并很快成为每个自重程序员宝库中的一个必需品. Python中有数不清的Web框架,从基本bai的微小架构到完整的架构,它们自有各自的优点.那么你准备使用它来做一些web ...

  8. 廖的python教程_廖雪峰的Python3.x教程.pdf

    目录 Python教程 Python简介 安装Python Python解释器 第一个Python程序 使用文本编辑器 Python代码运行助手 输入和输出 源码 learning.py Python ...

  9. 微软发布的python教程_微软发布Python 教程《Develop with Python on Windows》

    微软近日上线了一套 Python 教程<Develop with Python on Windows>,文档内容包括设置 Python 开发环境.在 Windows 与 WSL 子系统中安 ...

最新文章

  1. 在数据显示页面增加按姓名查询功能
  2. 关于年长程序员的5个误传
  3. 简述Java内存模型的由来、概念及语义
  4. Android 自定义WaveProgressView满足你所有水波纹加载需求
  5. TrueBit白皮书解读
  6. 20150310-删除数组中原有对象
  7. 2021-06-22 超链接伪类
  8. (西瓜书)机器学习(周志华)书目录
  9. Java笔试通关_Java面试通关宝典
  10. 债居时代总结与读后感——房贷如何影响经济[美]阿蒂夫·迈恩 [美]阿米尔·苏非著
  11. 国际清算银行成员发布央行数字货币分析报告
  12. 如何实现视频平台会员多账号登录
  13. 一加8T,一加8和一加8Pro有什么区别哪个好?分析优缺点?
  14. mysql保留小数点后一位 进位处理_请问EXCEL保留小数点后一位时是如何修约的?
  15. win 7系统怎么看计算机配置,windows7系统怎么查看电脑配置
  16. 弘辽科技:抖音小店差评如何补救?
  17. java实现的五子棋
  18. linux安装jdk8(附带linux版jdk8)
  19. 社区网站系统 jsGen
  20. 基于mask rcnn的三维物体分割

热门文章

  1. JavaScript中ubound函数
  2. python py如何变成exe_python如何将py变成exe文件
  3. Arturia Sound Explorers Collection Belledonne现已上市
  4. 如何在Linux上使用快照包
  5. Python开发——做一个简单的【表白墙】网站
  6. LTE - 以IMS SIP消息为例深入解析RLC AM PDU收发过程
  7. python爬虫—爬取拉钩网
  8. 如何化解频临离婚边缘的婚姻危机
  9. Vue - 每个页面单独设置 body 背景色(独立修改单个页面的背景色,不同页面设置不同的背景颜色)
  10. The superclass javax.servlet.http.HttpServlet was not found on the Java Build Path