0
我正在創建一個小遊戲,其目標是挖掘並銷燬鼠標。我爲它創建了一個單獨的鼠標類。無法從新的CCNode類刪除精靈
#import <Foundation/Foundation.h>
#import "cocos2d.h"
#import "HelloWorldLayer.h"
@interface Mouse : CCNode <CCTargetedTouchDelegate> {
CCSprite *sprite;
HelloWorldLayer *HelloLayer;
}
-(id) initWithGame:(HelloWorldLayer *)aGame;
-(void) runFloatAction;
@property(nonatomic, retain) CCSprite *sprite;
@property(nonatomic, retain) HelloWorldLayer *HelloLayer;
@end
我初始化這樣在.m文件:
-(id) initWithGame:(HelloWorldLayer *)aGame{
if ((self = [super init])) {
self.sprite = [CCSprite spriteWithFile:@"mouse.png"];
self.sprite.scale = 0.3f + CCRANDOM_0_1() * 0.5f;
self.sprite.position = ccp(CCRANDOM_0_1() * 480, CCRANDOM_0_1() * 320);
self.HelloLayer = aGame;
[aGame addChild:sprite];
[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self
priority:1
swallowsTouches:YES];
//[self runFloatAction];
}
return (self);
}
我想在點擊刪除精靈。我在.m文件中使用此代碼: -
- (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event
{
if ([self containsTouchLocation:touch]) {
[self.sprite removeFromParentAndCleanup:YES];
return YES;
}else{
return NO;
}
}
不幸的是,我無法刪除精靈。從邏輯上講,我們必須從父母中刪除精靈。但是,它並沒有真正的工作。
應該工作。但請記住,你保留這個精靈(你的財產是保留)。你可以做self.sprite = nil,從其父節點中刪除後釋放精靈。 – Ultrakorne 2011-12-14 11:01:46