Пока я касаюсь экрана, мой спрайт должен измениться - PullRequest
0 голосов
/ 03 апреля 2011

Я пытаюсь разработать действие и не могу получить этот эффект:

пока я касаюсь экрана, мой спрайт должен измениться на другой, а когда я зависаю, он должен вернуться в исходное состояние. Как определить время касания экрана и внести изменения в спрайт?

спасибо за вашу помощь.

1 Ответ

1 голос
/ 04 апреля 2011

Создайте подкласс CCNode с переменными normalSprite и pressSprite.В инициализаторе добавьте это, чтобы он обрабатывал касания:

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

Добавьте метод с этой подписью для обработки при касании экрана:

-(BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
    // Check that touch is within boundaries of this object
CGPoint touchLocation = [self convertTouchToNodeSpace:touch];
    if (!CGRectContainsPoint(CGRectMake(0, 0, self.boundingBox.size.width, self.boundingBox.size.height), touchLocation)) {
        return TRUE;
    }
    // Switch image
    [self removeChild:normalSprite cleanup:NO];
    [self addChild:pressedSprite];

    return TRUE;
}

Добавьте метод с этой подписьюдля обработки, когда палец уходит:

-(void)ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event {
    // Switch image back
    [self removeChild:pressedSprite cleanup:NO];
    [self addChild:normalSprite];
}

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

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