如何利用Bacon 2D来在Ubuntu平台上制作自己的游戏

原创 2015年09月07日 11:15:46

很多人曾经疯狂地玩过疯狂的小鸟.中国也曾出现过类似的游戏疯狂过一阵.这些游戏是基于一个叫做Box2D的游戏引擎.在今天的介绍中,我们来介绍如何在Ubuntu平台上开发自己的类似的游戏.不过这个引擎的名称称之为Bacon2D.利用这个引擎,我们可以开发出我们很多有趣的应用.


1)安装Bacon2D并为Desktop进行编译



首先,我们可以在地址Bacon2D下载我们的源码或在Bacon2D的官方地址下载:

$git clone https://github.com/kenvandine/Bacon2D.git

这样我们把我们的源码下载到我们的电脑中,并存于一个目录里.

接下来,我们为Desktop进行编译.因为我们是从一个git checkout中的目录中进行编译的,所以我们必须通过如下的命令来更新一些模块:

$ git submodule update --init

在接下来,我们进入到Bacon2D的源代码"src"目录,并键入如下的命令:

$ mkdir build && cd build
$ qmake ..
$ make
$ sudo make install



通过这样的方法,我们可以把我们的Bacon2D的模块安装到我们的系统的如下的目录中:


install -m 755 -p "imports/Bacon2D/libbacon2dplugin.so" "/usr/lib/x86_64-linux-gnu/qt5/qml/Bacon2D.1.0/libbacon2dplugin.so"
strip --strip-unneeded "/usr/lib/x86_64-linux-gnu/qt5/qml/Bacon2D.1.0/libbacon2dplugin.so"
install -m 644 -p /home/liuxg/release/Bacon2D/src/PhysicsEntity.qml /usr/lib/x86_64-linux-gnu/qt5/qml/Bacon2D.1.0/
install -m 644 -p /home/liuxg/release/Bacon2D/src/BoxBody.qml /usr/lib/x86_64-linux-gnu/qt5/qml/Bacon2D.1.0/
install -m 644 -p /home/liuxg/release/Bacon2D/src/ChainBody.qml /usr/lib/x86_64-linux-gnu/qt5/qml/Bacon2D.1.0/
install -m 644 -p /home/liuxg/release/Bacon2D/src/CircleBody.qml /usr/lib/x86_64-linux-gnu/qt5/qml/Bacon2D.1.0/
install -m 644 -p /home/liuxg/release/Bacon2D/src/EdgeBody.qml /usr/lib/x86_64-linux-gnu/qt5/qml/Bacon2D.1.0/
install -m 644 -p /home/liuxg/release/Bacon2D/src/ImageBoxBody.qml /usr/lib/x86_64-linux-gnu/qt5/qml/Bacon2D.1.0/
install -m 644 -p /home/liuxg/release/Bacon2D/src/PolygonBody.qml /usr/lib/x86_64-linux-gnu/qt5/qml/Bacon2D.1.0/
install -m 644 -p /home/liuxg/release/Bacon2D/src/Boundaries.qml /usr/lib/x86_64-linux-gnu/qt5/qml/Bacon2D.1.0/
install -m 644 -p /home/liuxg/release/Bacon2D/src/RectangleBoxBody.qml /usr/lib/x86_64-linux-gnu/qt5/qml/Bacon2D.1.0/
install -m 644 -p /home/liuxg/release/Bacon2D/src/qmldir /usr/lib/x86_64-linux-gnu/qt5/qml/Bacon2D.1.0/


通过以上的方法,我们就完成了游戏引擎在Desktop上的部署.


2)部署游戏Bacon2D引擎到armhf chroot



为了我们的引擎能够在我们的手机上运行,我们必须也安装相应的库到我们的Ubuntu SDK里的armhf chroot中去.在这里,我们假设大家已经把Ubuntu SDK已经安装好了,并能正常地开发我们的Ubuntu应用.如果大家还没有安装好自己的Ubuntu SDK的话,请参阅我的另外一篇文章"Ubuntu SDK 安装"来安装好自己的SDK.


接下来,我们在我们的Terminal中打入如下的命令:

$sudo add-apt-repository ppa:bacon2d-team/ppa
$sudo apt-get update && sudo apt-get install qtcreator-template-bacon2d

通过这样的方法,我们可以把"Bacon2D Game (QMake)"模版加入到我们的Qt Creator的模版中.这样我们可以更容易地开发我们的Bacon2D Game应用了.


再接下来,我们打开我们的Ubuntu SDK.选择"Tools/Options"菜单:




我们选择"Maintain",并在Terminal中打入如下的命令:

$ apt-get install qtdeclarative5-bacon2d1.0:armhf && exit




这样我们就可以安装我我们想要的Bacon2D的模块到armhf的chroot里去了.这样你的Kit就可以编译Bacon2D的游戏了.



3)创建一个属于我们自己的Bacon2D的游戏



一旦我们已经安装好我们的Bacon2D模块,我们就可以创建我们自己的游戏了.打开我们的Ubuntu SDK,并选择"File/New File or Project..."菜单





我们选择"Bacon2D Game (QMake)"模版,创建一个叫做"bacon2dtest"的应用:






这样我们就创建了一个最基本的Bacon2D应用.下图是在Desktop上运行的情况:



当我们选择手机armhf Kit进行编译时,我们会发现如下的错误:

:-1: error: security_policy_version_matches_framework (bacon2dtest/bacon2dtest.apparmor): 1.2 != 1.3 (ubuntu-sdk-15.04)

这是因为在15.04中,security的版本已经升级到1.3,所以,我们需要对我们的.apparmor文件进行一个小的修改:

bacon2dtest.apparmor


{
    "policy_groups": [
        "networking"
    ],
    "policy_version": 1.3
}

在手机上的运行情况为:





更多关于Bacon2D的例程可以在地址https://github.com/kenvandine/Bacon2D/tree/tutorial/examples找到.

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

cocos2d-x 如何制作一个类马里奥的横版平台动作游戏续 2

欢迎回来,上篇我们讲到了物理引擎中重力环境模拟以及主角考拉与地面墙壁的碰撞,相信大家已经对2D世界的物理模拟有了一定的了解,现在我们接着讲如何让考拉动起来吧!       让考拉动起来!

cocos2d-x 如何制作一个类马里奥的横版平台动作游戏 1 献给所有对动作游戏有爱的朋友

大家一定很想知道超级马里奥,洛克人这样优秀的横版动作游戏是怎么制作的吧? 本文翻译自国外著名IOS源码教学商业网站raywenderlich 的IOS Game Start Kits三件套之一的Pl...

Cocos2d-x中由sprite来驱动Box2D的body运动(用来制作平台游戏中多变的机关)

好久都没写文章了,这篇是制作《胖鸟大冒险》中对各种机关的一

GamorLive:新平台只关注2D HTML5游戏

GamorLive:新平台只关注2D HTML5游戏 2012-8-30 17:39| 发布者: html5cn |来自: cwan| 评论: 0 摘要: HTML5是一个...

Ophone平台2D游戏引擎实现物理引擎二(4)

最后应该是渲染函数了,具体实现入代码清单13-5所示。   代码清单13-5:onDrawFrame函数  public void onDrawFrame(GL10 gl) {   ...

【cocos2d-x IOS游戏开发-捕鱼达人20】移植到IOS平台、编译

尊重开发者的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/17163607 上节回顾 【cocos2d-x I...

网页及移动平台2D游戏开发探索

最近入手了一台Nexsus S,发现在移动平台上3D游戏的体验比较差,还是2D细腻的画面表现力更好,也更适合休闲游戏的开发,于是搜索了一下2D游戏开发环境: 1. 可以跨PC,IOS,Android...

Cocos2d-x游戏在Android平台使用友盟社会化组件进行截图分享的实现

Cocos2d-x游戏Android平台使用友盟社会化组件进行截图分享的实现

Unity2D平台跳跃游戏摄像机跟踪的区域限制

如上图: 有时候我们不希望摄像机在跟踪角色的时候会跑到背景地图之外的地方,这样会给人一种穿帮的感觉。 我们或许只希望摄像机的左边框移动到地图的左边缘处就停止跟踪,也就是图中粉色箭头画出的区域限制以...

Cocos2d-x JavaScript Binding结合CocosBuilder跨平台游戏开发简明教程

作者:刘松  微博 前言 由国人自己研发的开源游戏引擎Cocos2d-x,在很短的时间内就风靡全球,来自多个国家的开发者均参与贡献代码,其优秀毋庸置疑。但是,年轻的Cocos2d-x正处于...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)