cocos2d 制作5星评分效果

前端之家收集整理的这篇文章主要介绍了cocos2d 制作5星评分效果前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_301_0@做的是一个评分的展示,不涉及评分的操作

@H_301_0@cocos2dx 3.0+

@H_301_0@

@H_301_0@效果如下,分别为8.6分,5分和10分

@H_301_0@

@H_301_0@

@H_301_0@五角星图片原图

@H_301_0@

@H_301_0@

@H_301_0@代码片段

for (int i = 0; i < (int)score / 2; i++)
	{
		auto starImg = Sprite::create("appstore/applist/star_full.png");
		starImg->setAnchorPoint(Point::ANCHOR_TOP_LEFT);
		starImg->setPosition(26 + i * 35,48);
		_detailHolder->addChild(starImg,POSTER_LAYER);
	}
	float percent = score/2 - (int)score/2;
	if ( percent != 0)
	{
		auto starImg = Sprite::create("appstore/applist/star_empty.png");
		starImg->setAnchorPoint(Point::ANCHOR_TOP_LEFT);
		starImg->setPosition(26 + (int)score / 2 * 35 + starImg->getContentSize().width * percent,48);
		starImg->setTextureRect(Rect(starImg->getContentSize().width * percent,starImg->getContentSize().width - starImg->getContentSize().width * percent,starImg->getContentSize().height));
		_detailHolder->addChild(starImg,POSTER_LAYER);

		auto starImg2 = Sprite::create("appstore/applist/star_full.png");
		starImg2->setAnchorPoint(Point::ANCHOR_TOP_LEFT);
		starImg2->setPosition(26 + (int)score / 2 * 35,48);
		starImg2->setTextureRect(Rect(0,starImg2->getContentSize().width * percent,starImg2->getContentSize().height));
		_detailHolder->addChild(starImg2,POSTER_LAYER);
	}
@H_301_0@

这边主要是用setTextureRect来切割星星的图片,我也是参考别人学习的这个方法,具体可以看如下链接 @H_301_0@http://blog.sina.com.cn/s/blog_65be11bd0101o8ou.html

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