懒骨头(http://blog.csdn.net/iamlazybone QQ:124774397 )
《喵汪大战》原作者:bill_man http://my.csdn.net/bill_man
周五晚上
这是上班族最喜欢的时间
昨晚在win8.1上跑暗黑2
修改兼容之后竟然完美运行
于是怀旧的进去做了几个任务
修改了data\global\excel目录下的skills技能表格文件
女巫技能改的乱七八糟的
爽到爆
ok,今天跑个网上比较火的例子:《喵汪大战》 点此下载
虽然网上很多介绍了,但你不自己敲一下跑一下,经验还是他们的。
估计很像之前的打飞机的游戏
开始
报环境:vs2012,cocos2dx2.2,win8.1
首先用脚本新建个空项目,
然后把下载的源码的代码和资源拷贝到项目中
回到vs导入现有项之后运行
然后开始改bug吧
bug1:
1>d:\java\cocos2d-x-2.2\projects\maowang\classes\appdelegate.cpp : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
项目右键 属性c++ 高级 禁用特定警告 添加刚才报的 4819 再次编译这个警告就没了
bug2
d:\java\cocos2d-x-2.2\projects\maowang\classes\gameaboutscene.h(29): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
方法前加个 int 即可
bug3
d:\java\cocos2d-x-2.2\projects\maowang\classes\gamescene.cpp(90): error C2665: “cocos2d::CCSprite::create”: 3 个重载中没有一个可以转换所有参数类型
blood3 = CCSprite::create(ui->getTexture());
可能CCSprite的初始化函数改了,后面是getTexture,于是用CCSprite::createWithTexture 即可。
bug4
d:\java\cocos2d-x-2.2\projects\maowang\classes\gamescene.cpp(74): error C2665: “cocos2d::CCArray::create”: 2 个重载中没有一个可以转换所有参数类型
enemys=CCArray::createWithCapacity(3);
//enemys = CCArray::create(3);
修改CCArray初始化方法即可。
--------------------------
改着改着,突然觉得这些bug只是cocos2dx版本的问题。
要不我下个新点的版本试试?哈哈太懒了
重新导入了比较新的项目代码
果然报错少了,但是还有错,继续改
bug5
1>d:\java\cocos2d-x-2.2\projects\maowang\classes\gamescene.cpp(30): warning C4018: “<”: 有符号/无符号不匹配
for(int i = 0;i < enemybullets->capacity();i ++){
i改为unsigned即可。
bug6
d:\java\cocos2d-x-2.2\projects\maowang\classes\gamemenuscene.cpp(132): error C2228: “.c_str”的左边必须有类/结构/联合
CCFileUtils::sharedFileUtils()->fullPathFromRelativePath("background.mp3")
fullPathFromRelativePath("background.mp3") 改为 fullPathForFilename()
bug7
1>d:\java\cocos2d-x-2.2\projects\maowang\classes\gameobjhero.cpp(107): error C2039: “locationInView”: 不是“cocos2d::CCTouch”的成员
//CCPoint touchPoint = touch->locationInView();
改为:
CCPoint touchPoint = touch->getLocationInView();
bug8
1>d:\java\cocos2d-x-2.2\projects\maowang\classes\gameobjhero.cpp(86): error C3861: “CCRectContainsPoint”: 找不到标识符
//return CCRect::CCRectContainsPoint(rect(), convertTouchToNodeSpaceAR(touch));
改为:
return rect().containsPoint(convertTouchToNodeSpaceAR(touch));
bug9
1>GameScene.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall GameEnemyBullet::setIsNotVisable(class cocos2d::CCNode *)" (?setIsNotVisable@GameEnemyBullet@@QAEXPAVCCNode@cocos2d@@@Z),该符号在函数 "public: virtual bool __thiscall GameMain::init(void)" (?init@GameMain@@UAE_NXZ) 中被引用
最后一个bug老改不好,先屏蔽了,终于看到游戏画面了,
//mybullet->setIsNotVisable(mybullet);
但没运行一会就宕了
看来最后那句不能直接注释掉。
void GameHeroBullet::setIsNotVisable(CCNode *pSender){
this->setVisible(false);
isvisable = false;
this->stopAllActions();
}
仔细看下这个方法,其实pSender这个参数根本没用到。
去掉参数,ok,但还是只能运行一小会。
bug10
Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.
待解决
好吧,不执着了。先这样吧。
------------------- 飞船起飞--------------------
Cocos2dx游戏开发系列笔记15.1:添加虚拟摇杆SneakyInput
Cocos2dx游戏开发系列笔记14:一个横版拳击游戏Demo-下(让游戏跑在手机上)
Cocos2dx游戏开发系列笔记13:一个横版拳击游戏Demo-中
Cocos2dx游戏开发系列笔记12:一个横版拳击游戏Demo-上
Cocos2dx游戏开发系列笔记11:解 刨《战神传说》完结篇
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游戏开发环境搭建
-------------------- 飞船降落--------------------
最后,骨头介绍一下陪在身边的哲哲(右边就是低调的哲哲)