我有一个游戏商店,玩家可以购买物品。我有一个CCLabelTTF
输出一个项目的价格,旁边有一个CCSprite
,它是一个硬币(货币)的图像。由于项目的价格随着用户获得更多项目而变化,因此标签文本开始与标签旁边的硬币CCSprite
重叠。我正在努力使硬币CCSprite
根据标签位置定位。除了将CCSprite作为子项添加到CCLabelTTF之外,还有更好的方法吗?比如在CCSprite
?
CCLabelTTF
现在我有这个:
coinIcon = [CCSprite spriteWithImageNamed:@"coin.png"];
[coinIcon setScale:0.3];
priceLabel.string = [NSString stringWithFormat:@"%.Lf", price];
[priceLabel addChild:coinIcon];
我也尝试setPositionInPoints,但每当我设置位置coin
时,屏幕上就不再出现了。这是我使用这种方法时遇到的主要问题。它可以在没有设置位置的情况下正常工作,但我需要硬币位于priceLabel
的左侧。当我尝试设置位置并运行应用程序时,它不会显示在屏幕上。有什么想法吗?
答案 0 :(得分:0)
使用CCNode作为容器,如下所示:
// 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,无论价格如何。
未经测试,已从内存中编码