Мне нужно разместить функциональность, где CCButton можно перетащить в нужное положение, где бы пользователю не было нужды размещать их.CCButton не работает, пока touchMoved реализован
У меня есть пользовательский класс для этого, но проблема click
Метод кнопки не вызывается, когда пользователь нажимает на кнопку.
touchyButton.h
#import "cocos2d.h"
#import "cocos2d-ui.h"
@interface touchyButton : CCButton { ... }
@property (nonatomic, assign) BOOL touchMoved;
@end
touchyButton.m
#import "touchyButton.h"
@implementation touchyButton
- (void) touchMoved:(UITouch *)touch withEvent:(UIEvent *)event {
NSLog(@"touchMoved...", nil);
self.touchMoved = YES;
self.anchorPoint = ccp(0.5, 0.5);
CGPoint touchLoc = [touch locationInNode:self.parent];
//CGPoint inTouchLoc = [self convertToNodeSpace:self.anchorPoint];
//CGPoint touchP = ccpAdd(touchLoc, inTouchLoc);
//self.position = [self.parent convertToNodeSpace: touchP];
self.position = touchLoc;
}
- (void) touchEnded:(UITouch *)touch withEvent:(UIEvent *)event {
self.touchMoved = NO;
NSLog(@"touchEnded...", nil);
}
@end
Как объясняет код, мы просто пытаемся переместить кнопку, где на экране, когда пользователь перетаскивает на кнопку.
Вызов кнопки в главном коде, где она должна отображаться.
touchyButton *btnRight = [touchyButton buttonWithTitle: @"" spriteFrame:[[CCSprite spriteWithImageNamed: @"arrR.png"] spriteFrame]];
[btnRight setBackgroundOpacity:0.5f forState: CCControlStateNormal];
[btnRight setAnchorPoint: ccp(1, 0.5)];
[btnRight setPosition: ccp(viewS.width - 10.f, viewS.height/2)];
[self addChild: btnRight];
[btnRight setTarget:self selector: @selector(performRightJump:)];
Теперь, когда пользователь нажимает на кнопку, кнопка переходит в выбранное состояние, но performRightJump
никогда не срабатывает. Может ли кто-нибудь предложить любую альтернативу, как я могу реализовать кнопку с перетаскиванием поведения с целевым действием? Любой намек был бы оценен также.
Еще одна вещь: в текущем коде я могу только перенести опорную точку кнопки в новую точку касания. Любая идея, как я могу переместить кнопку в реальном режиме? Текущий метод вызывает проблему нажатия первого раза для перемещения, нажатия кнопки привязки точки на точку переключения.
Я не могу решить эту проблему, и мне нужно закрыть вопрос. –
Невозможно решить проблему и оставить ее разработку. –