2D开源游戏引擎调研报告(二)

二.Panda3D
0.基本介绍:
Panda3D是由迪士尼参与开发的开源3D游戏引擎
只有函数库,通过在python/c++文件中调用函数库进行开发
官网:https://www.panda3d.org/

教程资源:
①安装引擎时会附带28个demo,展示了引擎的使用方式和特点,并附有非常详细的注释
②https://arsthaumaturgis.github.io/Panda3DTutorial.io/
分步骤介绍了一个小游戏的制作过程和所需代码
②https://docs.panda3d.org/1.10/python/introduction/tutorial/
官网上的教程,主要介绍了3d画面相关的语法

1.语言和代码
引擎使用代码:Python或c++(但是c++相关资源较少且不完善,不推荐)

2.可执行文件的生成
使用Pyinstaller程序(与python语言配套)
支持平台:Windows、Mac OS X和Linux
注:在Windows系统只能生成exe程序,另外两个系统也是只能生成对应平台的可执行程序

3.对象的继承、封装和实例化
使用pyhton/c++语法
附:panda3d内部有一类egg资源文件,每一个文件包含一个3d对象的模型和数个动作,可以直接调用并使用,但是不支持2d对象

4多场景的切换
Panda3d的场景全部在一棵以render为根节点的树上。当一个节点插入render树时(使用reparentTo方法),它就会被渲染。多个节点可以平行放置,也可以形成父子关系。移除节点使用detachNode方法

5物理引擎,包含:
碰撞检测:
Panda3d有一个碰撞检测系统和一个碰撞队列,可以添加在对象上。发生碰撞时,可以从队列中取出一个或全部发生碰撞的对象

物理模型:

可以自己制作egg模型然后调用

6粒子效果
Panda3D自带一个particle_panel工具,其功能较为丰富。可以打开该工具并设计粒子效果,也可以在代码中动态添加(demo中有演示)。

7 UI组件
UI组件在direct.gui.函数库中
包含:button、label、checkbox、slider、checkbutton、scollbar、waitbar(进度条 )
定时器:可以用schedule方法,

8利用容器设置对象在屏幕中的位置
使用frame(它也是一个UI控件),可以将其它UI控件放入其中。

9光影渲染
有专门的函数库,可以设置灯光的位置、亮度等参数,是3D效果

10动画部分,包含:
10.1对象的位置、朝向、移动
使用posInterval和hprInterval设置运动效果
10.2对象的颜色变化
需要手动设置
10.3数字的变化
同上

11音频文件的加载、播放
支持MP3, WAV, AIFF, MIDI, MOD, WMA, and OGG

12视频文件的加载、播放
有一个MovieVideo函数库,但没看懂API的介绍

13学习资源的丰富性
在百度上能搜到的资源较为有限。官方的API只有英文

评价:Panda3d最大的优势在于三维模型相关的功能,它对2d的支持相对于整个引擎来说占比不高,而且所有的2d对象也是在三维世界中渲染的。如果只要2d功能的话,使用这个引擎并不合适。另外,它的代码风格有点奇怪(可能是我没学过python的关系?),又没有任何中文教程,入门难度高,不建议初学者第一个尝试这个引擎。

你可能感兴趣的:(游戏引擎,2d游戏)