【cocos2dx 3.3】口袋空战2 子弹层
2014-11-01 09:50
239 查看
分析:
子弹有自己的动作,故定义为Sprite类子弹需要做碰撞检测,故要设置物理属性
子弹从飞机的旁边射出,故初始化要传入飞机的Y轴坐标
子弹一旦发射,就一直向屏幕右端移动,用Moveto解决
子弹素材:
代码:
Bullet.h
#include "cocos2d.h" USING_NS_CC; class Bullet : public Sprite { public: //根据Y坐标初始化子弹位置 static Bullet* create(float positionY); virtual bool init(float positionY); //获取屏幕大小 Size visibleSize; //定义子弹精灵 Sprite *bullet; //移除子弹 void rm(); };
Bullet.cpp
#include "Bullet.h" USING_NS_CC; Bullet* Bullet::create(float positionY) { Bullet *b = new Bullet(); b->init(positionY); b->autorelease(); return b; } bool Bullet::init(float positionY) { Sprite::init(); visibleSize = Director::getInstance()->getVisibleSize(); bullet = Sprite::create("bullet.png"); bullet->setPhysicsBody(PhysicsBody::createBox(bullet->getContentSize())); bullet->getPhysicsBody()->setGravityEnable(false); bullet->getPhysicsBody()->setContactTestBitmask(1); bullet->getPhysicsBody()->setTag(2); addChild(bullet); bullet->runAction(Sequence::create(MoveTo::create(0.5f,Point(visibleSize.width,positionY)),CallFuncN::create(CC_CALLBACK_0(Bullet::rm,this)),NULL)); return true; } void Bullet::rm() { bullet->removeFromParent(); }
相关文章推荐
- 【cocos2dx 3.3】口袋空战5 总结与发布
- 【cocos2dx 3.3】口袋空战1 背景层
- 【cocos2dx 3.3】口袋空战3 敌人层
- 【cocos2dx 3.3】口袋空战4 游戏主场景
- cocos2dx 3.3 魂斗罗初步尝试 (目前)敌人和子弹(只做了一点点)
- cocos2dx3.3 使用cocos studio2.0 导出的.csb文件
- 【cocos2dx 3.3 lua】02 去掉调试信息以及多分辨率适配
- 【cocos2dx 3.3 lua】03 cocos studio使用与加载--hello studio
- cocos2dx3.3开发FlappyBird总结十一:控制层功能设计
- cocos2dx3.3 打包官方cpp-tests例子Apk
- cocos2dx-3.3 网络编程(CURL+PHP) NO.2 登陆功能
- 菜鸟也能学cocos2dx 3.3 AudioCache
- cocos2dx3.3 使用cocos studio2.0 导出的.csb文件
- cocos2dx 3.3 笔记
- cocos2dx3.3开发FlappyBird总结十二:状态层设计
- cocos2dx3.3 android工程 Jni调用java函数
- 用Quick3.3开发微信打飞机 (二) -------------------- 子弹和敌人的配置和创建
- cocos2dx 3.3 pluginx tools文件夹分析
- cocos2dx 3.3 + lua 学习笔记(01)--- math库
- cocos2dx 3.3 适配(缩放距离, 不缩放图片)