项目git地址:https://github.com/marco115/NoOneDies.git
对文章有什么优化改进的地方,请留言!谢谢大家
- 游戏结束的检测
- 游戏结束页面的编写
游戏结束的检测
同样,我们需要监听游戏角色和滑块的碰撞
<pre>
在Block.cpp和Hero.cpp内需要加上一下来添加碰撞配置
//添加碰撞检测
getPhysicsBody()->setContactTestBitmask(1);
之后在Scene内添加碰撞监听
auto listener = EventListenerPhysicsContact::create();
listener->onContactBegin = this {
this->unscheduleUpdate();
Director::getInstance()->replaceScene(GameOver::createScene());//跳转到游戏结束页面
return true;
};
Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this);
</pre>
游戏结束页面的编写
我们编写一个GameOverScene继承自LayoutColor,并在里面声明init方法
整个页面只显示GameOver就好了
<pre>
class GameOver:public LayerColor
{
public:
virtual bool init();
CREATE_FUNC(GameOver);
static Scene* createScene();
private:
Size visiableSize;
};
</pre>之后在源文件实现init和createScene方法<pre>
Scene * GameOver::createScene()
{
auto s = Scene::create();
auto l = GameOver::create();
s->addChild(l);
return s;
}
bool GameOver::init()
{
visiableSize = Director::getInstance()->getVisibleSize();
LayerColor::initWithColor(Color4B::WHITE);
auto l = Label::create();
l->setString("Game Over");
l->setColor(Color3B::BLACK);
l->setSystemFontSize(40);
addChild(l);
l->setPosition(visiableSize.width / 2, visiableSize.height / /2);
return true;
}
</pre>之后HelloWorldScene中结束逻辑中加上这句话
Director::getInstance()->replaceScene(GameOver::createScene());//跳转到游戏结束页面
基本上已经完成了,还缺的是选择模式,选择角色,还有时间,重新游戏这些,代码上面都有大家可以看一下!
编译源文件
接下来就是编译源文件的时候了!在运行中打开Cmd,把目录定位到项目目录里面输入
cocos compile -p android --android-studio --app-abi armeabi
将文件编译成Android Studio可运行的项目
之后打开项目就运行起来就可以了!