【cocos2dx 3.2】一个都不能死3 障碍物层

来源:互联网 发布:马勒 交响曲 知乎 编辑:程序博客网 时间:2024/04/30 22:15

分析:

  1. 障碍物也是一个Sprite类
  2. 障碍物的宽高要设置成随机数
  3. 不断向左移动,可以用update方法不断修改x坐标,越界后移除
  4. 计算增添物块的时间间隔,可在游戏层用update实现

Block.h

[cpp] view plaincopy在CODE上查看代码片派生到我的代码片
  1. #include "Block.h"  
  2.   
  3. USING_NS_CC;  
  4.   
  5. bool Block::init()  
  6. {  
  7.     Sprite::init();  
  8.   
  9.     //设置随机宽高  
  10.     Size size = Size((rand()%25)+5,(rand()%30)+10);  
  11.     Size visibleSize = Director::getInstance()->getVisibleSize();  
  12.     //创建物理属性  
  13.     setPhysicsBody(PhysicsBody::createBox(size));  
  14.     setTextureRect(Rect(0,0,size.width,size.height));  
  15.     setColor(Color3B(0,0,0));  
  16.     setContentSize(size);  
  17.   
  18.     setPositionX(visibleSize.width);  
  19.     //开启计时器  
  20.     scheduleUpdate();  
  21.     //设为静态物体  
  22.     getPhysicsBody()->setDynamic(false);  
  23.     //设置碰撞标记,触发碰撞事件  
  24.     getPhysicsBody()->setContactTestBitmask(1);  
  25.       
  26.     return true;  
  27. }  
  28.   
  29. void Block::update(float dt)  
  30. {  
  31.     setPositionX(getPositionX()-3.5);  
  32.   
  33.     if (getPositionX() < 0)  
  34.     {  
  35.         unscheduleUpdate();  
  36.         removeFromParent();  
  37.     }  
  38. }  
0 0
原创粉丝点击