您的位置:首页 > 移动开发 > Cocos引擎

cocos2dx 3.3 跑酷游戏 信息层

2014-10-22 22:28 302 查看
很简单的信息层,只显示了金币数和跑的距离,在主场景中和游戏层实现交互

#pragma once//防止重复编译
#include "cocos2d.h"
USING_NS_CC;
class InfoLayer :public Layer
{
public:
bool init();
CREATE_FUNC(InfoLayer);
void goldAddOne();//金币数+1
void distanceAddOne();//距离+1
int getGoldNum();//为游戏结束层所写,(写GameOverLayer时加入)
int getDisNum();//同上
private:
int m_distance;//距离
int m_goldNum;//金币数
CCLabelAtlas *ttf_gold;//显示
CCLabelAtlas *ttf_distance;
};
#include "InfoLayer.h"
bool InfoLayer::init()
{
if (!Layer::init())
{
return false;
}
auto visibSize = Director::getInstance()->getVisibleSize();
auto origin = Director::getInstance()->getVisibleOrigin();
m_goldNum = 0;
m_distance = 0;
auto gold_string = CCLabelTTF::create("gold", "Arial", 32);
gold_string->setAnchorPoint(Point::ZERO);
auto distance_string = CCLabelTTF::create("distance", "Arial", 32);
distance_string->setAnchorPoint(Point::ZERO);
gold_string->setPosition(origin.x +10, origin.y + visibSize.height - gold_string->getContentSize().height);
ttf_gold = CCLabelAtlas::create("0", "123.png", 26, 29, '0');
ttf_gold->setPosition(gold_string->getPositionX()+gold_string->getContentSize().width+10,origin.y+visibSize.height-gold_string->getContentSize().height);
distance_string->setPosition(ttf_gold->getPositionX()+ttf_gold->getContentSize().width+100, origin.y + visibSize.height - gold_string->getContentSize().height);
ttf_distance = CCLabelAtlas::create("0", "123.png", 26, 29, '0');
ttf_distance->setPosition(distance_string->getPositionX() + distance_string->getContentSize().width + 10, origin.y + visibSize.height - gold_string->getContentSize().height);

addChild(ttf_gold);
addChild(ttf_distance);
addChild(gold_string);
addChild(distance_string);

return true;
}
void InfoLayer::goldAddOne()
{
m_goldNum++;
std::string s;
s=std::to_string(m_goldNum);
ttf_gold->setString(s);
}
void InfoLayer::distanceAddOne()
{
m_distance++;
std::string s;
s = std::to_string(m_distance);
ttf_distance->setString(s);
}
int InfoLayer::getGoldNum()
{
return m_goldNum;
}
int InfoLayer::getDisNum()
{
return m_distance;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐