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

本文介绍如何在Cocos2d-x游戏开发中利用UserDefault保存和更新玩家的最高分,通过代码示例展示了分数管理的具体实现。

    从今天起寒風的旅途由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 最高分","DFGirl",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);
}


      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值