我已经为这个问题苦苦挣扎了好几天:我有 CCNode >> StateComponent 并且在 StateComponent 中我有一个 CCSprite 作为属性并将其作为子项添加到 StateComponent 中。当我设置 StateComponent 对象的位置而不是精灵的位置时,StateComponent 对象的边界框出现在正确的位置。精灵位置的默认值设置为 (0,0)。精灵的边界框出现在 (0,0),但精灵纹理从 (0,0) 偏移。之后我将 StateComponent 对象添加到 CCScene。
也许有人可以帮助我建议:如何设置精灵位置,以便纹理和边界框出现在与 StateComponent 对象相同的位置?稍后我想检测节点(精灵)上是否有触摸,然后用精灵旋转节点。
任何帮助将非常感激!!!
@interface StateComponent : CCNode {
}
@end
@implementation StateComponent
-(instancetype) initWithGestureStatewithSprite:(CCSprite*) sprite andPosition: (CGPoint) spritePosition RelativeAngle:(float) angle {
self = [super init];
if (!self) {
return nil;
}
self.sprite = sprite;
self.relativeAngle = angle;
self.position = spritePosition;
[self addChild:sprite];
return self;
}
@end
@interface StateViewScene : CCScene {
}
@end
@implementation StateViewScene
-(id) init {
self = [super init];
if (!self) {
return nil;
}
StateComponent * body = [[StateComponent alloc] initWithGestureStatewithSprite [CCSprite spriteWithImageNamed:@"body.png"] andPosition: CGPointMake(512,384) RelativeAngle:0];
[self addChild:body];
return self;
}