寒風的Cocos之旅之游戏获取最高分

前端之家收集整理的这篇文章主要介绍了寒風的Cocos之旅之游戏获取最高分前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

从今天起寒風的旅途由cocos2d-x变为Cocos了。因为时代在进步。。。好了废话不多说,下面进入正题。

我们在做飞机大战等一系列小游戏中,会遇到最高分问题。那么这时候我们有两种选择,一种是连数据库,一种是用UserDefault。

在这里,我用我的代码为大家说明:

//分数
	auto labelscore=Label::createWithSystemFont("分数:0","DFGirl",40);
	labelscore->setName("labelscore");
	labelscore->setPosition(Vec2(size.width/2-20,size.height/2+115));
	labelscore->setColor(Color3B::BLACK);
	//labelscore->setOpacity(0);
	this->addChild(labelscore,6);
	auto scoreLabel=(Label *)this->getChildByName("labelscore");
	scoreLabel->setString(String::createWithFormat("分数:%d",score)->_string);

	Label * highscoreLabel=nullptr;
	if (score>_highscore)
	{
		UserDefault::getInstance()->setIntegerForKey("Highscore",score);
		_highscore=score;
		highscoreLabel=Label::createWithSystemFont("恭喜您突破自我!\n 最高分",20);
		highscoreLabel->setColor(Color3B::RED);
		highscoreLabel->setHorizontalAlignment(TextHAlignment::CENTER);
		highscoreLabel->setPosition(Vec2(size.width/2-20,size.height/2+145));
	}
	else
	{
		highscoreLabel=Label::createWithSystemFont(StringUtils::format("你的最高分:%d",_highscore),"DFgirl",20);
		highscoreLabel->setColor(Color3B::RED);
		highscoreLabel->setPosition(Vec2(size.width/2-20,size.height/2+145));
	}
	this->addChild(highscoreLabel,6);

	}

首先定义一个分数来记录,你的最终得分,然后定义一个最高分。然后判断如果当前分数大于最高分,那么就让当前分数给最高分赋值。否则,显示您的最高记录是:XXX。
void GameScene::onEnter()
{
	Layer::onEnter();
	_highscore = UserDefault::getInstance()->getFloatForKey("Highscore",0);
	SimpleAudioEngine::getInstance()->playBackgroundMusic("stones_v.4_loop.mp3",true);
}
原文链接:https://www.f2er.com/cocos2dx/341219.html

猜你在找的Cocos2d-x相关文章