首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将CCSprite“组合”为CCLabelTTF

将CCSprite“组合”为CCLabelTTF
EN

Stack Overflow用户
提问于 2014-10-08 21:08:53
回答 1查看 68关注 0票数 0

我有一个游戏商店,玩家可以在那里购买物品。我有一个输出物品价格的CCLabelTTF,旁边有一个CCSprite,它是一个硬币(货币)的图像。由于商品的价格随着用户获得更多的商品而发生变化,标签文本开始重叠就在标签旁边的硬币CCSprite。我正在努力使硬币CCSprite定位在标签位置上。是否有比将CCSprite作为子级添加到CCLabelTTF中更好的方法来做到这一点?,例如在CCSprite中包含CCLabelTTF

现在我有一个:

代码语言:javascript
运行
复制
coinIcon = [CCSprite spriteWithImageNamed:@"coin.png"];
[coinIcon setScale:0.3];
priceLabel.string = [NSString stringWithFormat:@"%.Lf", price];
[priceLabel addChild:coinIcon];

我也在尝试setPositionInPoints,但是每当我设置一个位置,coin就不再出现在屏幕上。这是我一直使用这种方法时遇到的主要问题。它可以很好地工作,而不设置一个位置,但我需要硬币在左边的priceLabel。当我试图设置一个位置并运行应用程序时,它不会出现在屏幕上。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-08 22:06:41

使用CCNode作为容器,如下所示:

代码语言:javascript
运行
复制
// CCSprite and CCLabelTTF are by default anchored (.5,.5)
// so make label same height as coin and it will line dead-center
// to the coin's vertical apex

float offsetInPoints = 8.f;
float labelWidthInPoints = 80.f;
CCNode* priceNode = [CCNode node];
coinIcon = [CCSprite spriteWithImageNamed:@"coin.png"];
[coinIcon setScale:0.3];
priceLabel.string = [NSString stringWithFormat:@"%.Lf", price];
priceLabel.horizontalAlignment=CCTextAlignmentLeft;
priceLabel.dimensions=CGSizeMake(labelWidthInPoints,coinIcon.contentSizeInPoints.height);
[priceNode addChild:coinIcon];
[priceNode addChild:priceLabel];
priceLabel.positionInPoints = ccpAdd(coinIcon.positionInPoints, 
   ccp(coinIcon.contentSizeInPoints.width+offsetInPoints,coinIcon.position.y));

这将把价格标签在一个恒定的offsetInPoints在硬币的右边,无论最终的价格是什么。

未测试,从内存中编码

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26266487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档