cocos2d-x 3.0 rc0 + flappybird 学习心得

牧甫
2023-12-01

本人是大菜鸟一枚,刚入门cocos2d-x 不久,决定写个小游戏练练手感,发现OiteBoys的文章 cocos2dx制作flappybird,然后学习之,拿来练手


作者的版本是3.0 beta版本,而在3.0 rc0版本中有略微差别:


1)物理碰撞onContactBegin 参数变为一个

 

//物理碰撞 监听
	auto contactListener = EventListenerPhysicsContact::create();
	contactListener->onContactBegin = CC_CALLBACK_1(GameLayer::onContactBegin,this);
	this->getEventDispatcher()->addEventListenerWithSceneGraphPriority(contactListener,this);

监听函数

bool GameLayer::onContactBegin(PhysicsContact& contact) {
	this->gameOver();
	return true;
}




2.body参数


在给小鸟和水管添加body的时候,需要添加如下属性,否则不会触发onContactBegin函数

        body->setCategoryBitmask(1);    // 0001
	body->setContactTestBitmask(-1); // 0100
	body->setCollisionBitmask(-1);   // 0011


然后就是作者的代码还有一个微小的bug,就是点击retartBtn之后,小鸟碰撞之后会立马消失,而不是落地之后消失,解决方法是把小鸟不设置成单例模式

用普通的CREATE_FUNC()即可


附下载地址:


 flappybird源码



 类似资料: