Цель C - Создать строку, нажав спрайты, это возможно? - PullRequest
0 голосов
/ 21 ноября 2010

Я опишу проблему, у меня есть спрайты, которые представляют собой все буквы алфавита, и мне интересно, как я могу это сделать, когда вы касаетесь букв, образует слово, и я могу создать строку этого слова и через него сравнить с строка, у которой есть plist. Мне нужна идея, которая может мне помочь, спасибо.

Ответы [ 2 ]

1 голос
/ 21 ноября 2010

Да, это возможно. Один из способов проверки касаний - использовать CCTouchDispatcher.

Обзор

  1. Определите, какой класс будет следить за касаниями ваших спрайтов.
  2. Сделайте класс делегатом CCTargetedTouchDelegate.
  3. Добавить код в класс для регистрации в CCTouchDispatcher.
  4. Добавить код в класс для отмены регистрации с помощью CCTouchDispatcher.
  5. Добавьте сенсорные методы обратного вызова в ваш класс. В методах обратного вызова касания необходимо добавить код для определения, какой спрайт был затронут.

Зарегистрируйтесь и отмените регистрацию в Диспетчере

[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES];
[[CCTouchDispatcher sharedDispatcher] removeDelegate:self];

Методы CallBack для реализации

- (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event
- (void)ccTouchMoved:(UITouch *)touch withEvent:(UIEvent *)event
- (void)ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event

Пример кода для тестирования, если Touch In Sprite

- (BOOL) isTouch:(UITouch *)touch InSprite:(CCSprite *)sprite 
{
    CGPoint touchLocation = [touch locationInView: [touch view]];
    touchLocation = [[CCDirector sharedDirector] convertToGL: touchLocation];

    CGPoint localLocation = [sprite convertToNodeSpace:touchLocation];
    CGRect spriteRect = [sprite textureRect];
    spriteRect.origin = CGPointZero;

    if(CGRectContainsPoint(spriteRect, localLocation))
    {
        return YES;
    }

    return NO;
}
0 голосов
/ 21 ноября 2010

Может быть, будет проще использовать CCMenuItem (его также можно создать из спрайта), потому что он уже сенсорный.Все, что вам нужно сделать, это указать, что функция будет вызываться при прикосновении к CCMenuItem.

Ознакомьтесь с официальным руководством по программированию: http://www.cocos2d -iphone.org / wiki / doku.php/prog_guide:lesson_3._menus_and_scenes

...