微信运营自动化:微信打飞机项目小结-管理子弹和敌人类
微信运营自动化:微信打飞机项目小结-管理子弹和敌人类原文链接:https://blog.csdn.net/yejinxiong001/article/details/95462411 版权声明:本文为CSDN博主「sylalak123」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。2.使用vector的时候,注意get方法赋值的时候不加& 表示会复制一份vector数据给这个变量。//从管理器中获得子弹和敌机的数组引用 auto & enemyVector = Manager::getInstance()->getEnemyVector(); auto & bulletVector = Manager::getInstance()->getBulletVector(); 3. 控制飞机子弹,调用schedule和unschedule函数,注意c 里循环是-1,但是
Manager类
1.定义为一个单例
创建了这个Manager的实例之后,Manager类不会释放这块申请的内存,而是由系统来回收!
//子弹和敌机管理器,做成单例 class Manager { public: static Manager * getInstance(); static void freeInstance(void); private: static Manager * m_manager; Manager(); bool init(); public: //使用以下的方法定义了俩个容器,并且实现了get方法,一定要注意get的返回值,这个返回的是引用 Vector<EnemyBase *> & getEnemyVector(){return m_enemyVector;}; Vector<Bullet *> & getBulletVector(){return m_bulletVector;}; private: Vector<EnemyBase *> m_enemyVector; Vector<Bullet *> m_bulletVector; };
注意这里的定义的两个get方法,返回的是vector的引用,引用vector不会拷贝vector里的内容。
2.使用vector的时候,注意get方法赋值的时候不加& 表示会复制一份vector数据给这个变量。
//从管理器中获得子弹和敌机的数组引用 auto & enemyVector = Manager::getInstance()->getEnemyVector(); auto & bulletVector = Manager::getInstance()->getBulletVector();
3. 控制飞机子弹,调用schedule和unschedule函数,注意c 里循环是-1,但是,js里循环是用的一个常量定义cc.REPEAT_FOREVER。
//发射双发子弹,持续时间是4s this->schedule(SEL_SCHEDULE(&MainGame::addBulletByUFO) 0.1f 40 0); //停止单发子弹的发射 this->unschedule(SEL_SCHEDULE(&MainGame::addBullet)); //4s后再发射单发子弹 this->schedule(SEL_SCHEDULE(&MainGame::addBullet) 0.1f -1 4.0f); //如果碰撞检测到了,则设置这个UFO为不可见,因为移除的工作会在UFO执行完动作以后进行
————————————————
版权声明:本文为CSDN博主「sylalak123」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yejinxiong001/article/details/95462411