Использование CCMenuItemImage для создания отдельных кнопок в слое hud - PullRequest
1 голос
/ 05 сентября 2011

Я только что начал игру, используя cocos2d-iphone, и я пытаюсь добавить кнопку паузы в мой hud. Мой жуд будет иметь:

  • Оставшееся время
  • HP бар
  • Кнопка паузы

Я читал уроки Рэя Вендерлиха , и он упоминает о кнопках CCMenuItemImage, которые следует использовать. Я впервые сделал:

CCMenuItemImage *pauseButton = [CCMenuItemImage itemFromNormalImage:@"hud_pause_bt.png" selectedImage:@"hud_pause_bt.png" target:self selector:@selector(pauseAction:)];
pauseButton.position = ccp(winSize.width - pauseButton.rect.size.width/1.8, winSize.height - pauseButton.rect.size.height/1.8);

[self addChild:pauseButton];

но я никогда не достиг метода pauseAction. После этого я попытался добавить CCMenuItemImage к CCMenu с помощью следующего кода:

CGSize winSize = [CCDirector sharedDirector].winSize;

CCMenuItemImage *pauseButton = [CCMenuItemImage itemFromNormalImage:@"hud_pause_bt.png" selectedImage:@"hud_pause_bt.png" target:self selector:@selector(pauseAction:)];

pauseButton.position = ccp(winSize.width - pauseButton.rect.size.width/1.8, winSize.height - pauseButton.rect.size.height/1.8);

CCMenu *pauseMenu = [CCMenu menuWithItems:pauseButton, nil];
pauseMenu.position = CGPointZero;
[self addChild:pauseMenu];

В этом случае касания работают, но кажется неправильным создавать CCMenu только для того, чтобы сделать мой CCMenuItemImage кликабельным.

Что ты думаешь?

1 Ответ

3 голосов
/ 05 сентября 2011

То, как вы это сделали, правильно.Именно так CCMenu и CCMenuItems предназначены для использования.

Если вам не нравится этот метод, рассмотрите возможность использования CCStandardTouchDelegate в сочетании с CGRectContainsPoint.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...