Cocos2dx游戏开发系列笔记8:开搞一个射击游戏《战神传说》//就

懒骨头( QQ124774397 青岛 )

又是一个愉快的夜晚

还是那张长长的工作桌

哲哲在左边做一个香云纱手包

骨头在这里噼里啪啦的解刨

pad里放着《赢在中国》

桌子中间各种饮料、奶、水果…

进击吧~骨头~

首先感谢Android技术开发群(93367423)的SW同学提供的例子:战神传说

其实就是个打飞机的游戏

开始导入

1 新建项目,使用create_project.py建立一个空项目

2 将源码文件夹里的.cpp和.h还有资源文件拷贝到新建的项目中

3 用vs2012打开新建的项目

4 添加现有项,把cpp和h文件添加到classes里

一运行,好多错,额,尝试着改改

1>—— 已启动生成: 项目: MoonWarriors, 配置: Debug Win32 ——1> Bullet.cpp1>d:\java\cocos2d-x-2.2\projects\moonwarriors\classes\bullet.h(31): error C2259: “Bullet”: 不能实例化抽象类1>由于下列成员:1>“void UnitSprite::hurt(void)”: 是抽象的1>d:\java\cocos2d-x-2.2\projects\moonwarriors\classes\unitsprite.h(21) : 参见“UnitSprite::hurt”的声明1>d:\java\cocos2d-x-2.2\projects\moonwarriors\classes\bullet.cpp(6): error C2600: “Bullet::Bullet”: 不能定义编译器生成的特殊成员函数(必须首先在类中声明)1>d:\java\cocos2d-x-2.2\projects\moonwarriors\classes\bullet.cpp(12): error C2511: “Bullet::Bullet(int,const char *,int)”:“Bullet”中没有找到重载的成员函数1>d:\java\cocos2d-x-2.2\projects\moonwarriors\classes\bullet.h(8) : 参见“Bullet”的声明1>d:\java\cocos2d-x-2.2\projects\moonwarriors\classes\bullet.cpp(46): error C2511: “void Bullet::hurt(void)”:“Bullet”中没有找到重载的成员函数1>d:\java\cocos2d-x-2.2\projects\moonwarriors\classes\bullet.h(8) : 参见“Bullet”的声明1>d:\java\cocos2d-x-2.2\projects\moonwarriors\classes\bullet.cpp(67): warning C4305: “参数”: 从“double”到“float”截断1>d:\java\cocos2d-x-2.2\projects\moonwarriors\classes\bullet.cpp(68): warning C4305: “参数”: 从“double”到“float”截断骨头不懂C++,尝试着解决下。

首先看这段错误信息:

Bullet.cpp类中,不能实例化

它的父类有几个虚函数,但在Bullet.h文件中,似乎没找到这某个虚函数的定义,好吧,把UnitSprite.h

“Bullet::Bullet”: 不能定义编译器生成的特殊成员函数(必须首先在类中声明)

我们在对应的cpp文件中,添加所有的构造函数:

Bullet();Bullet(int speed, const char *weapon, int attactMode);

ok,再次运行,看到helloworld窗口了。

可为啥不是游戏界面呢,再改改。。。

AppDelegate.cpp类bool AppDelegate::applicationDidFinishLaunching() 方法中,

实例化CCScene方法改为:CCScene *pScene = StartMenu::scene();

并且加入头文件#include "StartMenu.h"

再次运行 OK!

额,看来需要改成竖屏的。

找到win32包下的main.cpp文件,

把19行的eglView->setFrameSize(480, 320);

改为eglView->setFrameSize(320, 480);

这次是完全OK了。

游戏截图如上,看起来还怎不错,一个demo做的还比较用心。

不知能否顺利的跑在手机上,走着。

1 首先拷贝资源文件到android系统的assets文件夹下。

2 然后打开android.mk文件,把所有的cpp文件加进去。

3 管理员权限打开cmd,cd到所在目录下,分别使用下面两个命令,修改目录权限

takeown /f * /A /R

icacls * /t /grant:r everyone:f

4 打开cygwin,定位到D:/Java/cocos2d-x-2.2/projects/LuoLiRun/proj.android 你的android目录文件夹下,运行./build_native.sh命令

cygwin报错如下:

jni/Android.mk:12: *** 遗漏分隔符 。 停止。

分隔符,难道是Android.mk格式有问题?

很有可能,于是骨头打开Android.mk文件,仔细检查了下,果然,第三行最后少了 反斜杠,最后多了个反斜杠,改之,再次运行

开始编译代码了,但运行到一半又停了,,难报错是main.cpp相关。

难道是因为有两个main.cpp?我记得好像demo里有,然后脚本生成的代码里也有。删掉demo里的main.cpp,并且在Android.mk文件里也删掉。

猜对了!再次进行编译了……

几分钟之后,在cygwin里看到了so文件编译成功。

为了不打扰哲哲休息,骨头决定截稿,明天继续!

——————- 飞船起飞——————–

Cocos2dx游戏开发系列笔记13:一个横版拳击游戏Demo-中

Cocos2dx游戏开发系列笔记12:一个横版拳击游戏Demo-上

Cocos2dx游戏开发系列笔记11:解刨《战神传说》完结篇

Cocos2dx游戏开发系列笔记10:解刨《战神传说》

Cocos2dx游戏开发系列笔记9:android手机上运行《战神传说》,并解决横竖屏即分辨率自适应问题

Cocos2dx游戏开发系列笔记8:开搞一个射击游戏《战神传说》//就个打飞机的

Cocos2dx游戏开发系列笔记7:一个简单的跑酷游戏《萝莉快跑》的消化(附下载)

Cocos2dx游戏开发系列笔记6:怎样让《萝莉快跑》的例子运行在vs和手机上

Cocos2dx游戏开发系列笔记5:继续润色《忍者飞镖射幽灵》

Cocos2dx游戏开发系列笔记4:怎样新加一个Scene类?

Cocos2dx游戏开发系列笔记3:牛刀小试->忍者飞镖射幽灵的Demo

Cocos2dx游戏开发系列笔记2:一个刚创建的cocos2dx中的demo里都有什么

Cocos2dx游戏开发系列笔记1:一个崭新的开始,cocos2dx2.2+ndkr9+Cygwin+vs2012游戏开发环境搭建

——————– 飞船降落——————–

最后,骨头介绍一下陪在身边的哲哲(右边就是低调的哲哲)

哲哲,小名 YIYI ,手工爱好者,文艺范,手艺人,《YiYiの妙舍》创始人,很有自己想法。

失败是成功的亲娘,没有失败哪来的成功呢?诺贝尔如果不经历千万次的失败,

Cocos2dx游戏开发系列笔记8:开搞一个射击游戏《战神传说》//就

相关文章:

你感兴趣的文章:

标签云: