如何通过单次触摸激活CCMenuItem并移动CCSprite

时间:2013-01-30 10:00:05

标签: iphone cocoa-touch cocos2d-iphone ccmenuitem

块引用

我有一个CCMenuItem按钮,我希望能够在按下时按下,然后创建一个新的CCSprite,可以在使用相同的印刷机时拖走。基本上你按下按钮并拖动一个可以在屏幕上移动的新精灵。

我已经将CCMenuItemImage子类化为按下时创建新精灵,但新精灵在没有抬起并开始新触摸的情况下不会检测到任何触摸。我是否可以通过按下按钮来查看或使用我现有的触摸,以便在不抬起手指的情况下拖动它?

任何想法都会非常感激。

我的CCMenuItemImage的子类可以正常工作:

@interface CCMenuItemImageAdvanced : CCMenuItemImage {    
}

-(void) selected;
-(void) unselected;

@end

@implementation CCMenuItemImageAdvanced

-(void) selected {
[super selected];

// Method that creates the ccsprite
[_sharedGameHud createSprite:self];
}

-(void) unselected {
[super unselected];
}

@end

2 个答案:

答案 0 :(得分:1)

了解

[CCMenu ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event]

您可以继承CCMenu而不是调用

[selectedItem_ selected];

在上面的方法中,您可以在CCMenuItemImageAdvanced中创建一个新方法

- (void)selectedWithTouch:(UITouch*)touch;

然后使用该触摸来移动精灵。

答案 1 :(得分:1)

也许你可以在加载时隐藏CCSprite并触摸移动检查CCSprite是否可见以及它是否跟随手指。 CCButton必须取消隐藏CCSprite,使其可用于移动。