cocos2dx 计数条设计

/当游戏中需要进行滚动计分时 为了获得滚动数字 我们可以首先写一个计分函数 放入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,0,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,0,9,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,0,9,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,0,9,35));

bits1[0]->setTexture(ui);

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

}

else

{

bits[0]->setTexture(ui);

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

bits1[0]->setTexture(ui);

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

}

//十位

temp=(mark%100)/10;

if(temp>0)

{

bits[1]->setTexture(ui);

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

bits1[1]->setTexture(ui);

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

}

else

{

bits[1]->setTexture(ui);

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

bits1[1]->setTexture(ui);

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

}

//百位

temp=(mark%1000)/100;

if(temp>0)

{

bits[2]->setTexture(ui);

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

bits1[2]->setTexture(ui);

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

}

else

{

bits[2]->setTexture(ui);

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

bits1[2]->setTexture(ui);

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

}

//千位

temp=(mark%10000)/1000;

if(temp>0)

{

bits[3]->setTexture(ui);

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

bits1[3]->setTexture(ui);

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

}

else

{

bits[3]->setTexture(ui);

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

bits1[3]->setTexture(ui);

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

}

//万位

temp=mark/10000;

if(temp>0)

{

bits[4]->setTexture(ui);

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

bits1[4]->setTexture(ui);

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

}

else

{

bits[4]->setTexture(ui);

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

bits1[4]->setTexture(ui);

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

}

}

时间: 2024-12-22 15:05:49

cocos2dx 计数条设计的相关文章

你没见过吧?16款形态各异的加载进度条设计

互联网连接越来越快,但难免有一些时刻需要我们等待.在这种情况下,创意的设计师尽力减轻用户等待的痛苦,苦思敏想设计各种创意的进度条(或加载条)效果 ,让用户等待的过程变得更加愉悦. 您可能感兴趣的相关文章 22套 Web & Mobile PSD 用户界面素材 45套精美的手机界面设计素材和设计工具 分享30套精美的Web和手机开发UI素材 60个精美的免费移动开发PSD素材资源 45套新鲜出炉的精美 PSD 网页设计素材 Loading by pearlsomani Flat Loading B

C#PDA智能程序图片动态变化进度条设计及实现

前言:SmartProject 项目是C#桌面程序的精简版,很多属性和事件可能都没有设置进SDK中.在最近的PDA程序中,我没用使用进度条.为了防止用户乱点,最开始想使用windows提供的进度条,但是觉得又不适合,所以就试图用图片切换的方式来实现.  原理:开启线程切换图片实现显示(子线程不影响主线程而继续往下执行). 1.进度界面设计效果 2.界面切换效果 点击质检按钮后跳转(during the new thread running the UI will be changed): 等待业

见过吗?14个超有创意的加载进度条设计

所有进度条的功能在于注重细节,即使是最微小的细节可以改变整个用户体验.好的设计能够广泛传播,让人们分享并推荐你的设计.在下面的列表中,你会发现一批设计精美的加载进度条例子,可以免费下载. 您可能感兴趣的相关文章 22套 Web & Mobile PSD 用户界面素材 45套精美的手机界面设计素材和设计工具 分享30套精美的Web和手机开发UI素材 60个精美的免费移动开发PSD素材资源 45套新鲜出炉的精美 PSD 网页设计素材 Loading Bar by Andra Popovici Amo

Cocos2d-x进度条倒计时实现

素材: 实现: //进度条背景 CCSprite *progressbgSprite; progressbgSprite = CCSprite::create("time_slot-hd.png") ; progressbgSprite->setAnchorPoint(ccp(0,0)); //修改定点对应点 progressbgSprite->setPosition(ccp(0, size.height-22)); progressbgSprite->setScal

流和几条设计准则

时间:2014.05.27 地点:基地 --------------------------------------------------------------------------------------- 一.关于std::cin和std::cout cin和cout的类型是std::istream和std::ostream .这两个类型又分别对应着 std::basic_istream<char> std::basic_ostream<char> 即,是分别是这二者ty

cocos2dx中的设计分辨率与屏幕适配策略

1.首先明确几个概念: 设计分辨率:designResolution,即资源图片的设计尺寸,即美工给你的资源图片的大小,比如(641*964) 屏幕分辨率:又叫帧的大小,glview->setFrameSize(480,640); 这是指你的设备的屏幕的大小,通常手机的屏幕分辨率也就那么几种固定的大小,如480*320,1024*768,等等,在win32模拟器,或其他模拟器中,也指模拟器屏幕的大小. 2.疑问,既然图片是为手机屏幕服务的,干嘛搞这么多概念,直接一切以屏幕为中心不就得了,所有资源

Cocos2d-x 血条跟随怪物运动----之游戏开发《赵云要格斗》(5)

本章在前面的基础上,设计一个怪物类,并实现怪物的上方显示血条,血条跟随怪物的运动而运动. 重要说明:由于TexturePacker试用期结束了,不能再用,所以接下来的动画都不合成plist和整张的PNG.同时,之前的赵云图像太动画效果不是很好,所以换了个赵云的图片.另外,将整个项目的类都分别归档,这样更加容易看懂些. 这是本章的一个效果: (下一章的效果) 一.更改英雄类 赵云的图片:以下中是一部分,动画就是通过读一张一张的PNG图片来实现的(没有再合成Plist和整张PNG) 更改后的英雄类H

【转】Apache的架构师们遵循的30条设计原则

原文链接:https://mp.weixin.qq.com/s?__biz=MzA5MzQ2NTY0OA==&mid=2650798277&idx=1&sn=97afe157dc1627713b729d9ef058b477&key=ff09d031d7c4257b64b553ffa39ec2898f3acca42bef27d43fca8492dc5c171cd2acfdb8c4f63fd175f61ecaaac0e1fb7e02cc32fce5acd43f598d50f60

js范例学习——窗口/框架与导航条设计之弹出窗口设置

1.弹出窗口设置 在JS中,可以使用window对象实现对窗口的控制. window常用方法: alert();弹出一个警告对话框: confirm();在确认对话框中显示指定的字符串: prompt();弹出一个可输入对话框: close();关闭被引用的窗口: foucus();将被引用的窗口放在所有打开窗口的最前方,成为焦点窗口: open();打开新的窗口并且显示由URL或名字引用的文档,可以创建窗口的属性: resizeTo(x,y);设置窗口的大小: resizeBy(offsetx