分析:

障碍物也是一个Sprite类

障碍物的宽高要设置成随机数

不断向左移动,可以用update方法不断修改x坐标,越界后移除

计算增添物块的时间间隔,可在游戏层用update实现Block.h

#include “Block.h”

USING_NS_CC;

bool Block::init()

{

Sprite::init();

//设置随机宽高

Size size = Size((rand()%25)+5,(rand()%30)+10);

Size visibleSize = Director::getInstance()->getVisibleSize();

//创建物理属性

setPhysicsBody(PhysicsBody::createBox(size));

setTextureRect(Rect(0,0,size.width,size.height));

setColor(Color3B(0,0,0));

setContentSize(size);

setPositionX(visibleSize.width);

//开启计时器

scheduleUpdate();

//设为静态物体

getPhysicsBody()->setDynamic(false);

//设置碰撞标记,触发碰撞事件

getPhysicsBody()->setContactTestBitmask(1);

return true;

}

void Block::update(float dt)

{

setPositionX(getPositionX()-3.5);

if (getPositionX() < 0)

{

unscheduleUpdate();

removeFromParent();

}

}