加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos2dx 计数条设计

发布时间:2020-12-14 20:43:52 所属栏目:百科 来源:网络整理
导读:/当游戏中需要进行滚动计分时 为了获得滚动数字 我们可以首先写一个计分函数 放入update中进行调用每帧加一个固定的分数 //加入分数记录框 auto framCache=SpriteFrameCache::getInstance(); framCache-addSpriteFramesWithFile("config.plist","config.png"

/当游戏中需要进行滚动计分时 为了获得滚动数字 我们可以首先写一个计分函数 放入update中进行调用每帧加一个固定的分数

//加入分数记录框

auto framCache=SpriteFrameCache::getInstance();

framCache->addSpriteFramesWithFile("config.plist","config.png");

auto fram=framCache->getSpriteFrameByName("scorebar.png");

auto title=Sprite::createWithSpriteFrame(fram);

title->setPosition(Point(size.width-210,size.height-15));

addChild(title);

//初始五个0

for(int i=0;i<5;i++)

{

auto number=Sprite::create("111.png");

ui=number->getTexture();

number->setTextureRect(CCRectMake(24.8,9,35)); //一定要注意对精灵的裁剪

number->setPosition(Point(size.width-50-i*15,size.height-10));

bits[i]=number;

addChild(number,1);

}

for(int j=0;j<5;j++)

{

auto number1=Sprite::create("111.png");

ui1=number1->getTexture();

number1->setTextureRect(CCRectMake(24.8,35));

number1->setPosition(Point(size.width-275-j*15,size.height-10));

bits1[j]=number1;

addChild(number1,1);

}

mark=0; //将分数初始为0

this->scheduleUpdate(); //调用update函数

return true;

}

//计分函数(运用整除和取余的方法不停的设置个十百千万位 运用setTextureRect(CCRectMake(24.8+temp*12.3,35))对精灵进行裁剪和贴图

void GameMark::addNumber(int var)

{

mark+=var;

//个位

int temp=mark%10;

if(temp>0)

{

bits[0]->setTexture(ui);

bits[0]->setTextureRect(CCRectMake(24.8+temp*12.3,35));

bits1[0]->setTexture(ui);

bits1[0]->setTextureRect(CCRectMake(24.8+temp*12.3,35));

}

else

{

bits[0]->setTexture(ui);

bits[0]->setTextureRect(CCRectMake(21,13,35));

bits1[0]->setTexture(ui);

bits1[0]->setTextureRect(CCRectMake(21,35));

}

//十位

temp=(mark%100)/10;

if(temp>0)

{

bits[1]->setTexture(ui);

bits[1]->setTextureRect(CCRectMake(24.8+temp*12.3,35));

bits1[1]->setTexture(ui);

bits1[1]->setTextureRect(CCRectMake(24.8+temp*12.3,35));

}

else

{

bits[1]->setTexture(ui);

bits[1]->setTextureRect(CCRectMake(21,35));

bits1[1]->setTexture(ui);

bits1[1]->setTextureRect(CCRectMake(21,35));

}

//百位

temp=(mark%1000)/100;

if(temp>0)

{

bits[2]->setTexture(ui);

bits[2]->setTextureRect(CCRectMake(24.8+temp*12.3,35));

bits1[2]->setTexture(ui);

bits1[2]->setTextureRect(CCRectMake(24.8+temp*12.3,35));

}

else

{

bits[2]->setTexture(ui);

bits[2]->setTextureRect(CCRectMake(21,35));

bits1[2]->setTexture(ui);

bits1[2]->setTextureRect(CCRectMake(21,35));

}

//千位

temp=(mark%10000)/1000;

if(temp>0)

{

bits[3]->setTexture(ui);

bits[3]->setTextureRect(CCRectMake(24.8+temp*12.3,35));

bits1[3]->setTexture(ui);

bits1[3]->setTextureRect(CCRectMake(24.8+temp*12.3,35));

}

else

{

bits[3]->setTexture(ui);

bits[3]->setTextureRect(CCRectMake(21,35));

bits1[3]->setTexture(ui);

bits1[3]->setTextureRect(CCRectMake(21,35));

}

//万位

temp=mark/10000;

if(temp>0)

{

bits[4]->setTexture(ui);

bits[4]->setTextureRect(CCRectMake(24.8+temp*12.3,35));

bits1[4]->setTexture(ui);

bits1[4]->setTextureRect(CCRectMake(24.8+temp*12.3,35));

}

else

{

bits[4]->setTexture(ui);

bits[4]->setTextureRect(CCRectMake(21,35));

bits1[4]->setTexture(ui);

bits1[4]->setTextureRect(CCRectMake(21,35));

}

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读