Как я могу активировать CCMenuItem и перемещать CCSprite одним касанием

Цитата

У меня есть кнопка 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

person XBXSlagHeap    schedule 30.01.2013    source источник


Ответы (2)


смотреть в

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

Вы можете создать подкласс CCMenu и вместо вызова

[selectedItem_ selected];

в приведенном выше методе вы можете создать новый метод в CCMenuItemImageAdvanced

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

затем используйте это прикосновение, чтобы переместить спрайт.

person Sebastian    schedule 30.01.2013

Возможно, вы могли бы создать CCSprite, скрытый при загрузке, и при касании проверить, виден ли CCSprite, и если он следует за пальцем. CCButton просто должен показать CCSprite, сделав его доступным для перемещения.

person condor304    schedule 30.01.2013
comment
Спасибо за отзыв condor304. Я собирался пойти по этому пути или подобному, если не мог найти лучшего пути. Я не согласен с предложением Себастьяна, но благодарю вас за ваши отзывы. :) - person XBXSlagHeap; 01.02.2013