我有一個使用CCSpriteFrameCache的動畫精靈,代表我的遊戲角色。我想添加一個文本標籤作爲這個精靈的子節點來表示(動態)字符名稱,但是我遇到了'CCSprite沒有使用相同的紋理ID'的複雜問題。由於文本是動態的,因此我無法將其包含在角色正在使用的精靈表中。將這些文字疊加到我的角色上的最佳方法是什麼?使用CCSpriteFrameCache將標籤添加到動畫精靈
1
A
回答
1
我傾向於爲此使用CCNode派生,它也實現了RGBA協議。您可以從節點內播放動畫,並將標籤添加到節點(以及其他健身欄),然後移動節點,使其可見(或不可見),使用一些動畫,如淡入淡出整個內容。
0
在此上下文中繼承的構成是正確的。
你可以看到我的代碼應該是你自己實現的模板。
@interface Player : CCNode
+ (instancetype)playerWithName:(NSString*)name sprite:(CCSprite*)sprite
- (id)initWithName:(NSString*)name sprite:(CCSprite*)sprite;
@property (nonatomic, retain) CCSprite* sprite;
@property (nonatomic, copy) NSString* name;
@end
@implementation Player {
BOOL _nameLabelAdded;
BOOL _spriteAdded;
}
#define LABEL_NAME_TAG 0e1
@synthesize sprite = _sprite, name = _name;
+ (instancetype)playerWithName:(NSString*)name sprite:(CCSprite*)sprite {
return [[[self alloc] initWithName:name sprite:sprite] autorelease];
}
- (id)initWithName:(NSString*)name sprite:(CCSprite*)sprite {
if (self = [super init]) {
//NOT TESTED..
self.name = name;
self.sprite = sprite;
}
return self;
}
- (void)setSprite:(CCSprite*)theSprite {
if (theSprite != _sprite) {
[_sprite release];
_sprite = [theSprite retain];
if (!_spriteAdded) {
/* initialize position etc here */
[self addChild:_sprite];
_spriteAdded = YES;
}
}
}
- (void)setName:(NSString*)theName {
if (![_name isEqualToString:theName]) {
[_name release];
_name = [theName copy];
if (![_name isEqualToString:@""]) {
CCLabelTTF* name_label;
if (!_nameLabelAdded) {
name_label = [CCLabelTTF labelWithString:_name];
/* init the name_label */
[self addChild:name_label z:1 tag:LABEL_NAME_TAG];
_nameLabelAdded = YES;
} else {
name_label = (CCLabelTTF*)[self childWithTag:LABEL_NAME_TAG];
name_label.text = name;
}
}
}
}
@end
0
我在上次發佈的遊戲中遇到過這種情況。
解決此問題的最佳方法是創建父節點並將標籤和精靈添加爲子節點。單獨管理節點會更好,主要是因爲您可以調整兩者的位置而不會相互干擾。
節點層次:
- Node parent
- Sprite with CCSpriteFrameCache
- Label
相關問題
- 1. 將一個小精靈附加到動畫精靈andengine
- 2. 將精靈添加到組
- 3. 將寬度動畫添加到cocos2D中的精靈
- 4. Flex中添加精靈到畫布
- 5. 精靈動畫
- 6. 動畫精靈
- 7. 精靈動畫
- 8. 使用Box2d添加精靈到身體
- 9. GameClosure:精靈動畫
- 10. jquery動畫精靈
- 11. Css,精靈動畫
- 12. cocos2d動畫精靈
- 13. 精靈動畫片
- 14. 圖片精靈動畫鼠標移動
- 15. 將精靈添加到節點
- 16. 我試圖添加時間到我的精靈動畫與Kineticjs
- 17. 使用單精靈圖片製作動畫精靈
- 18. 用鼠標點擊添加2D精靈
- 19. 如何將標籤或精靈添加到cocos2d android中的另一個精靈上?
- 20. Cocos2d自動精靈動畫
- 21. 精靈動畫管理使用線程
- 22. 使用框架動畫精靈cocos2dx 3.2
- 23. 使用Spritely動畫製作精靈
- 24. 將精靈附加到SKPhysicsBody
- 25. Three.js在動畫精靈之間添加動態線條
- 26. 來自多個精靈畫面的動畫精靈
- 27. 將精靈添加到要使用的池中
- 28. 使用cocos2D如何使用兩個精靈表中的精靈創建動畫?
- 29. JavaScript動畫比例精靈
- 30. 如何動畫精靈?