Cocos2d-x飞机大战教程笔记

咳咳~跟着大神的教程学做Cocos2d-x的飞机大战...鉴于我是那种跟着教程都会出非常多错的人,所以还是一路跟着做些笔记比較好。并且因为是用课余时间,所以仅仅能断断续续地做,写下来也好让自己别忘记~

2014/4/22  Day01

从apk解压获取素材。再用TexturePacker拼接成plist和png。

话说TexturePacker是收费的啊...7天免费,还能够申请1年的使用期。

之前看书还看到有个神器叫zwoptex,貌似是免费的。可惜仅仅有Mac版...╮(╯_╰)╭However。这次用到它仅仅是1分钟的功夫...以后的事就慢慢考虑吧。嗯,还有就是,plist和png都是放在project的Resources文件夹下的,写代码获取文件的时候写文件名称就能够了。

假设放在Resources文件夹的子文件夹下,就把子文件夹名加上去就OK。(这句说给自己听的)记得用斜杠“/”不是反斜杠"\"...(via http://blog.csdn.net/jackystudio/article/details/11650413 )

然后创建GameScene.h、GameScene.cpp、GameLayer.h、GameLayer.cpp。

载入背景滚动图的时候。报了这种错:

①error C2440: “=”: 无法从“cocos2d::CCLayer *”转换为“GameLayer *”

从基类型到派生类型的强制转换须要 dynamic_cast 或 static_cast

②fatal error C1083: 无法打开包含文件:“GameScene.h”: No such file or directory

一開始还真的跟着提示加了个dynamic_cast...结果没实用。上网查了才知道,原来是这样解决的....

      project属性->配置属性->C/C++->常规->附加包括文件夹,把报错类的文件夹加进去。在这里加的就是$(ProjectDir)和$(ProjectDir)inc。依据宏定义。$(ProjectDir)就是project下的proj.win32文件夹,额,inc据说是子文件夹。并且我试了下,两个都是要加的,仅仅加当中一个还不让编译通过...(via http://www.cnblogs.com/txg-blog/archive/2011/03/07/1974857.html )

按上述步骤设置之后,①②都没有了,可是!又报了这种错:

③fatal error C1083: 无法打开包含文件:“AppDelegate.h”: No such file or directory

好吧看了下。这个AppDelegate.h是Classes文件夹下的,所以加进去的是$(ProjectDir)..\Classes。

最终不报错了。但是。说好的滚动背景呢!为什么仅仅有黑乎乎的屏幕...再看了看教程里面的演示样例代码。发现自己的GameScene.h写少了这样一个东西:

CREATE_FUNC(GameScene); 是调用create()函数的宏。嗯。GameLayer.h里也要写一个 CREATE_FUNC(GameLayer); 好。背景最终滚出来了。没有教程评论里说的黑边...窃喜~

大神说将GameLayer加到GameScene里面,然后以后的PlaneLayer、EnemyLayer、BulletLayer之类的都加到GameLayer上。

尽管书上也有说Layer之间能够相互调用,但我认为我还是比較想把之后的Layer都加到GameScene里面。

所以对于PlaneLayer对象。我还是在GameScene的init()里面调用create()创建而且addChild()。(via http://blog.csdn.net/jackystudio/article/details/11713197 )

显示飞机的这一步。报了个链接错误:

④error LNK2001: 无法解析的外部符号 "public: static class PlaneLayer * PlaneLayer::sharedPlane" ([email protected]@@[email protected])

....Plane.exe : fatal error LNK1120: 1 个无法解析的外部命令

果断google...(基础没打好什么都要google的人真悲哀。)static变量的定义应该是这种:

<数据类型><类名>::<静态数据成员名>=<值>(via
http://hi.baidu.com/albert02/item/8ac9464992e5ce0ac11613b5 )

我写的是这种:PlaneLayer* sharedPlane = NULL; ....改成PlaneLayer*
PlaneLayer::sharedPlane = NULL; 之后不报错了。飞机也出现了,闪了闪之后尾巴一直在喷火\(^o^)/背景也在滚。所以还是能够在GameScene里面创建PlaneLayer的~(事实上本来就能够..)好。明天继续。

时间: 07-01

Cocos2d-x飞机大战教程笔记的相关文章

python(pygame)滑稽大战(类似飞机大战) 教程

基于pygame实现类似飞机大战小游戏(滑稽大战) 成品已录制视频投稿B站,点击观看动画 项目稽忽悠不(github)地址(目前只上传了素材,代码还在整理中):https://github.com/BigShuang/From-simple-to-Huaji本文首发于本人简书 初始准备工作 本项目使用的python3版本(如果你用python2,我不知会怎么样) Ide推荐大家选择pycharm(不同ide应该没影响) 需要安装第三方库pygame, pygame安装方法(windows电脑,m

Cocos2d-x 3.0final 终结者系列教程16-《微信飞机大战》实现

看到cocos2d-x推出了3.1版本,真是每月一次新版本,速度, 还有一个好消息就是http://cn.cocos2d-x.org/上线了,祝贺!啥时候把我的视频和教程放上去呢?!!! 本文介绍一款纵版射击游戏的实现,开发环境: win7 vs2012 cocos2d-x3.0final android adt android ndk r9 首先看下最后的效果: (图1,微信飞机大战运行效果) 源码下载地址:http://download.csdn.net/detail/sdhjob/7513

[知了堂学习笔记]_纯JS制作《飞机大战》游戏_第1讲(实现思路与游戏界面的实现)

整体效果展示: 一.实现思路 如图,这是我完成该项目的一个逻辑图,也是一个功能模块完成的顺序图. 游戏界面的完成 英雄飞机对象实现,在实现发射子弹方法过程中,又引出了子弹对象并实现.在此时,英雄飞机能进行基本操作了. 敌机对象的实现,并且初步完成了boos出现(30s自动出现).然后又引出了许多方法的处理,如英雄子弹击中敌机和boos,英雄与敌机相撞等等.并一一解决. 随后又设置了一些游戏的参数,如血量,关卡数,等级,积分,必杀,道具对象等等. 最后又完成了一些辅助功能,暂停游戏,继续游戏,退出

windows程序设计——飞机大战笔记(单文档文件登陆界面)

//////////////2015/07/21//////////////// /////////////by xbw/////////////////////// /////////////环境 VS 2013//////////// 飞机大战做的差不多了,闲来无事加点高大上的东西,关于单文档的登陆界面::: 界面有点丑,但是足够账号登陆了,,先试一把: 还不错吧,该有的都有了:: 下面说一下过程 ...... 首先,我们要在资源视图中创建一个Dialog对话框::: 先大体画一下这个对话框

windows程序设计——飞机大战笔记(数据库记录游戏得分)

//////////////////2015/07/23//////////////// //////////////////by xbw////////////////////// /////////////////环境 VS2013//////////// 这个飞机大战呢,做了也有好几天了,我一半以上时间在鼓捣这个数据库,第一次弄,也学到了不少东西,在此记录一下,也分享一下经验:: 接着上次说吧,昨天呢,实现了多组数据的存储与调用,欣喜若狂,昨天就已经试验了这个对用户积分的储存,但是昨天不只

小甲鱼python基础教程飞机大战源码及素材

百度了半天小甲鱼python飞机大战的源码和素材,搜出一堆不知道是什么玩意儿的玩意儿. 最终还是自己对着视频一行行代码敲出来. 需要的同学点下面的链接自取. 下载 原文地址:https://www.cnblogs.com/144823836yj/p/10162920.html

基于Cocos2d-x-1.0.1的飞机大战游戏开发实例(上)

最近接触过几个版本的cocos2dx,决定每个大变动的版本都尝试一下.本实例模仿微信5.0版本中的飞机大战游戏,如图: 一.工具 1.素材:飞机大战的素材(图片.声音等)来自于网络 2.引擎:cocos2d-1.0.1-x-0.9.2 3.环境:vs2010 二.使用的类 1.游戏菜单界面类:PlaneWarMenu——派生自CCLayer类. 1 // 游戏菜单界面类 2 class PlaneWarMenu: public CCLayer 3 { 4 public: 5 virtual bo

《简单的飞机大战》事实上不简单(1)

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"><span style="white-space:pre"> </span>这是一个很easy的<经典飞机大战>游戏.实现的基本功能:包含Boss的随机生成,击中销毁:分数依据击毁Boss的数量添加. 附加功能有:道具的不定时产生,

豪华版飞机大战系列(一)

鉴于最近在学习cocos2d-x开发手游,对于学习过程中的一些东西做个总结,也记录下学习历程,同时分享些项目源码来和大家一起学习. 第一次写系列教程,可能中间有疏漏的,看到的还请给提个醒,不好的也多多吐槽,以便自己能更好的以后的开发中基类经验. 此次教程分享下豪华版的飞机大战,老规矩,先上图: 介绍下开发环境:cocos2d-x3.2 alpha + Ubuntu14.04 + eclipse + 命令行终端 + android 用的引擎为3.2版本的,3.0以上的应该都能运行跑下来,windo