开发者社区> 问答> 正文

cocos用什么版本的python 2.7.

cocos用什么版本的python 2.7.

展开
收起
云计算小粉 2018-05-10 20:11:05 2249 0
1 条回答
写回答
取消 提交回答
  • 作者:KJ(Kan Jia)
    链接:https://www.zhihu.com/question/21893155/answer/29567372
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    几年前刚刚初学python的时候, 也在pygame, panda3D, 和cocos2d-python之间犹豫过.多年以后, 自己实际上也没走上游戏这个行业, 但是现在看这样的问题顿时觉得轻松很多. 偶尔需要用python写一些桌面上的类游戏的效果, cocos2d-python版本成为我的(玩票)首选. 当然如果你是以游戏开发作为终身事业, 或者希望在游戏公司找一份工作, 那么你应该换一种学习路径...首先是pygame, panda3d这样的框架和cocos2d-python的比较: 第一大小, cocos2d-python的文件大概1.4M, 依赖的pyglet大概6M(解压缩以后). 这点绝对是panda3d这样的大家伙搞不定的, pygame, 压缩包大概1.4M, 另外还有一大堆依赖包, 比如pysdl...其实这里面还有更加深刻的差别. pygame的设计和实现在2000年左右, cocos2d则出现在2008年. 从技术上, pygame依赖的是pyopengl这样的库, 而cocos2d则依赖pyglet.传统的pyopengl这样的库用的是什么做法. 一般来说, 就是将原来C语言的dll编译成适合python调用的模块(也是dll/so的形式), 所以如果你用pip或者通过源码安装pyopengl这样的库的时候, 往往需要调用gcc, 需要安装好python-dev, 需要opengl-dev, 最后生成给你一个只能在python中import的dll.pyglet为什么不同呢? 因为在它被写出来的前几年, python世界里面有一个叫ctypes的东东出现了, 不久居然被python2.5收入了标准库, 变成了可以被直接import的东西. 通过这样一个神奇的标准库, 在python中可以直接打开dll文件调用其中的函数...于是, pyglet这个库, 它全部是用python语言写了一套opengl的包装. 事实上你根本不用安装gcc编译器就能安装好pyglet这个库. 更直接的说, 从网上下载下来解压缩, 把包copy到你的项目中即可.cocos2d-python, 也是纯python写的, 没有任何binary... 这意味着, 你写一个游戏, 然后将cocos和pyglet放在同一个目录下面, 接下来, 只要是装有python2.7的mac/linux/windows, 都可以直接跑起来. 这就是干净...说完了技术上的维度, 我们再来谈谈理念上的pygame和cocos2d都有sprite的概念, 但是使用方便性上是不一样的. pygame里面基本上就是一个层, 所有的操作, 比如旋转, 缩放, 都需要引入transform来处理. 而cocos2d的layer已经能够直接旋转, 缩放了. 接下来, 在cocos2d里面, 层出不穷的action让我们感受到了无与伦比的方便. 各种action组合, 比如一边移动一边旋转, 这才是现代的游戏framework.我个人以为, 很多东西都是相通的, 如果你是cocos2d-python的程序员, 只要这些理念上理解了, 应该不妨碍做iphone或者html5去写程序. 估计就是换成flash或者sprite kit, 一样很快上手.所以, 作为一个偶尔用用的游戏框架票友, 我最近真的用cocos2d-python写了一些桌面上的东东.关于文档少的问题, 确实cocos2d-python被冷落好久了, 因为cocos2d-x什么都包含, 包括各种desktop. 但是我看了看框架代码和游戏的example, 基本上很快摸索出来了.

    2019-07-17 22:25:20
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载