cocos2d-python是python中最伟大的2D游戏引擎。
——鲁迅
鲁迅:6
我之前也做过一个和cocos2d有关的专栏,都是因其质量极差,排版不堪入目。我觉得重写这个专栏,为各位带来一期更好的文章。
这次做专栏的理由还是和上次差不多的,其重点就是国内对于这么好的一款游戏引擎的资料却这么少,为了让更多人可以学会认识这个游戏引擎,我也决定为这个游戏引擎写一系列的教程。
不过学想学做游戏一定要先把基本功打好,python还不能融会贯通的赶快却好好学一下再来,python还不会的可以看看我的一个专栏【Python不是大蟒蛇】,这个专栏是专门面向0基础的。
不多说,抓紧船,我这就带大家扬帆起航。
(这表情包似乎没什么关系。。。)
Ⅰ.cocos2d-python介绍
0x00 用什么做游戏
python这么受人青睐是因为有这丰富的第三方库,通过这些第三方库可以快速方便的开发出需要的程序。因此python游戏游戏开发也不例外,做为初学者,我们可以使用现成的第三方库库来就行游戏开发。
常用的python GUI库如下:
- Tkinter(python标准库)
- PyQt(应该是比较知名的了)
- wxPython(没试过)
理论上,任何GUI库都可以制作游戏,但是毕竟不是专为游戏设计的,做起来就显得有些捉襟见肘了。因此专为制作游戏的库也就必不可少了。下面是一些常用的游戏库。
- pygame(最常见的,国内教程中基本都是这个)
- pyzero(pygame的封装)
- cocos2d-python(国内对这个的教程少之又少,其功能却是遥遥领先)
pygame粉先别反驳我,听完我分析在反驳。
0x01 pygame与cocos2d的对比
cocos2d诞生于2008年,而pygame的诞生就更早了,pygame诞生于2000年,距今已有20多年的历史了,是一个非常经典的游戏引擎,有着庞大的用户群体,目前仍经久不衰,许多开发者将他作为游戏开发的入门。
cocos2d与pygame相比,Cocos2d的一大特色就是语法颗粒度较大,API更偏上层,其中的常见(Scene),层(Layer),导演(Director),动作(Action)等概念使游戏层级分化更加明显,更贴近现代游戏设计理念。有一个很好的比喻,cocos2d比python尺度更大,功能更华丽,更像是通往游戏王国的一个“梯子”,而pygame更像是一个“板凳”。(没有说pygame不好的意思哈)
下面是pygame与cocos2d区别的表格
pygame | cocos2d | |
诞生时间 | 2000年 | 2008年 |
实现方式 | C语言+Python | Python |
优点 | 语法颗粒度小,使用起来更加灵活; 大部分代码由C语言实现,性能方面不用说了; 文档及其丰富
| 语法颗粒度较大,易于实现复杂功能; 设计理念更贴近现代游戏; 支持OpenGL加速; cocos2d家族庞大(姓cocos2d的一大堆) |
缺点 | 难以实现复杂功能 | 文档少。。。 |
0x02 cocos2d简介
前面都在和其他引擎对比,终于可以好好介绍一下了!
官网:Cocos2D(可可斯2D) (los-cocos.github.io)
cocos2d-python的Logo如下:(额。。。官网不知道为什么访问不了,Logo。。)
本来是彩色的
与Pygame类似,Cocos2d同样也是一个用作2D游戏以及各种GUI应用程序开发的开源且跨平台的Python框架。不同于Pygame,Cocos2d完全是由Python语言编写的。原理层面上,Cocos2d是对Pyglet(同为Python 2D游戏库)的不完全封装,并使用OpenGL硬件加速绘图。
Cocos2d是由Ricardo Quesada等人于2008年开发的,由于Cocos2d诞生于Los Cocos(阿根廷地名),所以其最初的名称为Los Cocos,后来改为了Cocos2d。如今,Cocos2d官方的GitHub地址中仍然保留着它最初的名称。
如今,Cocos2d家族庞大、成员众多,除了Cocos2d Python以外,Cocos2d还包括Cocos2d-x、Cocos2d-html5、Cocos2d-XNA、Cocos2d-objc等,作为家族的第一个成员,在我们提到Cocos2d时,其实指的就是Cocos2d Python,不过有时为了与其他Cocos2d库区分开来,我们也经常称之为Cocos2d Python。鉴于本专栏只针对Cocos2d Python进行介绍,所以后文提到Cocos2d或者Cocos的地方均指的是Cocos2d Python。
对比Pygame,Cocos2d提供的语法更为上层,抽象程度更高,它把游戏抽象为导演、场景、层、动作等一些概念,大幅简化了游戏开发流程,逻辑上也比Pygame更为清晰,也更像是专门为游戏设计的,从而显得更加专业,这也是笔者喜欢Cocos2d的重要原因之一。
Ⅱ.cocos2d安装
0x00 环境要求
下列要求均来自cocos2d · PyPI
软件
-
python 3.6+ (备注:当然了,最好是高于3.8,笔者这里用的是3.10)
-
pyglet 1.4.10+, < 2.0 ( http://pyglet.org )
-
Linux, Windows or Mac OS/X
硬件:
-
要执行某些效果,您需要一个带有以下功能的显卡:
GL_EXT_framebuffer_object extension.
0x01 依赖关系
cocos2d的必备依赖包:
- Six
- Pyglet
粒子效果依赖于:
- NumPy。
声音支持依赖于:
- FFmpeg;
- Pygame或SDL。
0x02 创建一个虚拟环境
为避免与其他的依赖与系统环境产生冲突,我这里使用的方式是使用PyCharm新建一个虚拟环境。
没有安装PyCharm和python需自行安装。
1)新建项目:
点击创建即可。
2)安装cocos2d
我们安装有两个办法。
1.命令行安装
我们打开终端,并输入下面的指令即可安装cocos2d
pip install cocos2d -i https://pypi.tuna.tsinghua.edu.cn/simple
出现如下输出就成功了,失败的自行百度。
然后我们用如下指令验证
pip list
可以看到第三方库里多了cocos2d
2.使用PyCharm可视化工具安装
打开解释器设置
搜索软件包并安装
我们已经成功安装了cocos2d,下节课我们将通过一个简单的例子来了解cocos2d。