Пока я касаюсь экрана, мой спрайт должен измениться

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

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

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


person al3el    schedule 03.04.2011    source источник
comment
Нам нужно знать гораздо больше о проблеме, чтобы помочь. Пожалуйста, опишите немного больше, что вы разрабатываете, какую платформу используете, и точно проблему, которую вы видите.   -  person Jeremy Powell    schedule 03.04.2011


Ответы (1)


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

[[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), чтобы обрабатывать ситуации, когда касание перемещается наружу и обратно внутрь границ объекта.

person lins314159    schedule 04.04.2011