终于还是把电脑上的游戏(CS1.6和SC2)打腻了=_=,在无聊的双休,作业又写完的情况下怎么打发时间?
所以还是决定学一款游戏制作的库,我的MX250貌似带不动虚幻系列的引擎,在github上翻大佬的repo时,看到了panda3d这个3d游戏制作库,话不多说,打开官方的tutorial,开始学习。为了翻阅方便,打算写点笔记。不过需要说的是,这个引擎的教程不是面向小白的,所以如果你没有编写Python的相关经验,而且不知道什么是面向对象,那么整篇文章不适合你。相反,如果你熟悉Python,而且有过GUI的开发经验,那么肯定可以看得易如反掌。
panda3d的特性
看了看panda3d官方吹的特性,大概如下几点:python的编写接口,C++的逻辑底层,所以在保证运行效率的前提下,使用panda3d更加易于编写。
引擎完备性充分,有必要的开发工具,引擎崩了也有良好的报错系统帮你找到错误。
引擎开源,而且即便是将制作的游戏商业化也是不需要支付费用的。我是个无情的翻译机器,不过是否想官方吹的一样还得手搓一遍才知道
安装panda3d
首先通过pip指令下载:
pip install panda3d==1.10.7
然后去官网上下载一下panda3d的游戏引擎(蛮小的,只有700MB左右),下载链接及安装教程如下,不得不说,官方还是蛮良心的:Installing Panda3D in Windowsdocs.panda3d.org
在安装完引擎后,可以尝试运行官方给出的例子来验证是否成功运行。在引擎安装目录下有一个sample文件夹:解压后的文件夹下应该有如上的文件
点开后是若干个官方的例子,我们随便点开一个小行星的游戏"asteroids",在“asteroids”文件夹下运行main.py文件,就可以启动游戏:
下面开始编写官方给出的hello world,原文链接如下:Starting Panda3Ddocs.panda3d.org
需要说明的是,下面的代码都是写在一个文件中的。
1.创建第一个panda3d程序
就像制作GUI,一个游戏需要一个窗口承载其中的内容,所以我们使用panda3d编写游戏的第一步就是创建这样的一个窗口,来承载我们的画面。
panda3d通过ShowBase类来创建一个游戏窗口,代码如下:
from direct.showbase.ShowBase import ShowBase
class MyApp(ShowBase):
def __init__(self):
super(MyApp, self).__init__()
app = MyApp()
app.run()
上述程序创建了一个窗口类,通过run方法来开启游戏。其中super(