cocos2dx 3.0 飞机大战
来源:互联网 发布:入驻淘宝商城费用 编辑:程序博客网 时间:2024/04/27 14:48
由于课程需要,然后又水平有限,所以写了个飞机大战,加上不会画画,所以图片资源也是从微信apk解压出来的,设计思路参考的偶尔e网事。
闲话不说,先讲一下设计,大体上一共分为3个场景,场景下面是Layer
开始场景:WelcomeScene -->WelcomeLayer 类似欢迎界面
游戏主场景:GameScene --> GameLayer 游戏元素添加 和 碰撞检测
结束场景:GameOverScene -->GameOverLayer
然后是游戏的元素,在GameLayer添加,一个分为4个Layer:
PlaneLayer:主角层
EnemyLayer:敌机层 ,分为3种,每种敌机生命值不一样
UFOLayer: 道具层,bullet和加bomb
BulletLayer:子弹层 bullet 和mutiBullet
然后简单讲一下碰撞检测的实现:
if(bullet->boundingBox().intersectsRect(enemy1->getBoundingBox())){if(enemy1->getLife() == 1){enemy1->loseLife();bulletsToDelete->addObject(bullet);enemy1ToDelete->addObject(enemy1);score += ENEMY1_SCORE;this->mControlLayer->updateScore(score);}}
Rect Enemy::getBoundingBox(){Rect rect = this->m_sprite->boundingBox();Point pos = this->convertToWorldSpace(rect.origin);return Rect(pos.x, pos.y, rect.size.width, rect.size.height);}
还有再来就是子弹层的处理:
子弹发射需要步骤:1.添加子弹,2.移动子弹,3移除子弹
由于需要源源不断的发射子弹,所以将子弹添加到一个SpriteBatchNode节点中,然后在这个SpriteBatchNode节点对子弹进行添加,移动,和移除,这样子做的好处是只需要渲染一次,降低内存消耗
auto texture = TextureCache::getInstance()->textureForKey("shoot.png");bulletBatchNode = SpriteBatchNode::createWithTexture(texture);this->addChild(bulletBatchNode);
然后再讲一下图片资源的处理:
下载这个工具:plist解析工具
将微信需要的资源解析出来,然后可以用photoshop处理一下,哈哈,可以将微信的图片去掉,随便p上自己的名字
然后用TexturePacker打包,恩,大概就像这样子
最后再讲一下编译成android工程的步骤和细节:
1.先在Android.mk文件中添加所有必须的cpp
2.记得在AppDelegate cpp 中添加分辨率适应
glview->setDesignResolutionSize(480,800,ResolutionPolicy::SHOW_ALL);3.在proj.android文件夹下面修改AndroidManifest.xml 竖屏属性:
android:screenOrientation="portrait"
4.cmd到工程目录,命令:cocos compile -p android -j 4
源码:飞机大战
- cocos2dx 3.0 飞机大战
- cocos2dx飞机大战游戏代码
- cocos2dx实现经典飞机大战
- cocos2dx飞机大战Cocos2d-x飞机实现
- cocos2dx飞机大战教程Cocos2d-x飞机大战运行效果
- cocos2dx一仿微信飞机大战游戏实战一
- cocos2dx一仿微信飞机大战游戏实战二
- cocos2dx飞机大战之Cocos2d-x飞机大战整体框架搭建
- cocos2dx游戏项目之飞机大战1 目录
- cocos2dx 2.X 飞机大战例子 学习笔记
- 微信飞机大战cocos2dx项目总结之一 菜单场景
- 基于cocos2dx的飞机大战学习[一]-环境搭建
- 基于cocos2dx的飞机大战学习[四]-添加英雄子弹
- 飞机大战
- 飞机大战
- 飞机大战
- 飞机大战
- 飞机大战
- 江湖救急篇:slave 复制出错
- ubuntu14.04 firefox flash plugin install
- 随心游项目开始啦~~
- 第九周项目三
- 存储过程中执行拼接的字符串sql
- cocos2dx 3.0 飞机大战
- Qt 让QLabel自适应text的大小,并且自动换行
- 中国陆地生态系统的宏观结构变化时空分异规律
- c#数据库迁移
- zipfile使用
- android学习笔记---fragment替代tabhost
- C++与Java中虚函数问题的读书笔记
- socket长时间连接,需要心跳包。
- 二叉树最大 最小深度