一、引言
Flappy Bird这款游戏,它的一个非常新颖的地方,就是充分利用了游戏世界的物理属性——小鸟不是水平飞行,而是同在物理世界里一样,受到重力的影响。所以其运动轨迹不是单一的直线,而是抛物线。
二、给小鸟附加物理属性
那么,我们如何为小鸟添加上物理属性呢?事实上,强大的游戏引擎已经为我们做好了一切准备。且看如下代码:
//创建小鸟
this->bird = BirdSprite::getInstance();
this->bird->createBird();
//创建物理属性
PhysicsBody *body = PhysicsBody::create();
body->addShape(PhysicsShapeCircle::create(BIRD_RADIUS));
body->setDynamic(true);
body->setLinearDamping(0.0f);
body->setGravityEnable(false);
//将该物理属性附加到小鸟身上
this->bird->setPhysicsBody(body);
此外,游戏进行过程当中,每次点击屏莫的时候,给小鸟设置一个向上的初速度: