前言:

上一篇博客

ps: 注意以下事项:

1 cocos2d-x editor在接下来的版本会加入一键打包apk功能,不仅支持JS,也支持直接用java编写游戏代码,可跨平台的,请持续关注。现在我们只能通过新建android工程把js打包成apk;

2 请更新上一篇博客的代码,改了Main.js代码适应真机;(很重要)

3 请更新cocos2d-x editor到cocos2d-x editor 1.0Beta版本:(很重要)

4  调试尽量用android真机,因为需要opengl,android模拟器好像不支持,可能需要设置,笔者还没找到方法

背景:

最近火爆全球的游戏flappy bird让笔者叹为观止,于是花了一天的时间山寨了一个一模一样的游戏,现在把游戏的思路和源码分享出来,代码是基于javascript语言,cocos2d-x游戏引擎,cocos2d-x editor手游开发工具完成的,请读者轻砸;

ps:运行demo需要配置好cocos2d-x editor,暂不支持其他工具。还有demo是跨平台的,可移植运行android,ios,html5网页等。

运行Android真机效果图:

     

Android Apk下载演示:

Cocos2d-x  JS源代码下载:(代码有更新,Main.js改了配置适应真机,请使用最新代码):

Android移植代码下载:

代码如何移植到各平台:

开发工具(2013-02-14 已更新到1.0Beta):

cocos2dx editor,它是开发跨平台的手机游戏工具,运行window/mac系统上,javascript脚本语言,基于cocos2d-x跨平台游戏引擎, 集合代码编辑,场景设计,动画制作,字体设计,还有粒子,物理系统,地图等等的,而且调试方便,和实时模拟;

cocos2dx-editor官方博客:http://blog.makeapp.co/;(请持续关注版本更新)

移植代码结构分析:

使用cocos2d-x editor开发游戏,编写代码和设计场景都在Sources目录里,而编译产生的代码在Published目录,根据自己选择的操作系统产生不同的Published代码。

在移植android工程里,把Published里面的所有代码拷贝覆盖到asserts里面下,整个游戏是作为一个Cocos2dxGameActivity活动存在的,可以和android本身的代码交互。另外,cocos2d-x editor会自动在libs生成armeabi----libcocos2dx-game.so和cocos2dx-android.jar,这些是js和java代码交流需要的库。其他和一个android工程一样,所以你会发现android工程只是一个空架子,所有有效的代码都在asserts里面;你现在只需要按照一个正常的android项目运行程序就可以了;

项目结构分析如下:

移植方法步骤:

1 File-New  Project新建一个cocos2dx-2.2-android项目如下图;

2  idea本来就是用开发android的,请确保idea开发android环境是正确的(jdk,sdk等),如果不会配置请百度一下,网上很多(关键词intellij idea  android),可以尝试用idea运行一个android的hello world,确保环境正确;

3 把AndroidManifest修改如下,主要是更改package名称,游戏的图标和名字。如下面的代码,所有的游戏场景在android里面就是一个Cocos2dxGameActivity;

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29<?xml version="1.0" encoding="utf-8"?>

package="org.cocos2dx.lib"

android:versionCode="1"

android:versionName="1.0.16">

android:icon="@drawable/icon">

android:label="@string/app_name"

android:screenOrientation="portrait"

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

android:configChanges="orientation">

android:smallScreens="true"

android:anyDensity="true"

android:normalScreens="true"/>

4 把Published里面的代码拷贝覆盖到asserts目录下,最后点击绿三角运行,效果如文中的图片;

Logo

这里是一个专注于游戏开发的社区,我们致力于为广大游戏爱好者提供一个良好的学习和交流平台。我们的专区包含了各大流行引擎的技术博文,涵盖了从入门到进阶的各个阶段,无论你是初学者还是资深开发者,都能在这里找到适合自己的内容。除此之外,我们还会不定期举办游戏开发相关的活动,让大家更好地交流互动。加入我们,一起探索游戏开发的奥秘吧!

更多推荐