Исчезает CCSprite, который прослушивается

#ios #iphone #objective-c #cocos2d-iphone #ccsprite

#iOS #iPhone #objective-c #cocos2d-iphone #ccsprite

Вопрос:

Я хотел бы отключить спрайт, как только он будет задействован для игры для iOS, которую я создаю с cocos2d. В настоящее время появляется спрайт, и он объявляется следующим образом:

 @implementation GameScene
{
    CCSprite *_shapeSprite;
}
  

и затем у меня один появляется каждые 0,2 секунды в addShape: методе

 - (void)onEnter
{
    [super onEnter];
    [self schedule:@selector(addShape:) interval:0.2];
}
  

Тем не менее, я хотел бы сделать так, чтобы при нажатии на одну из фигур исчезала только та, которая была прослушана. Пока у меня есть это:

 -(void) touchBegan:(UITouch *)touch withEvent:(UIEvent *)event
{
    _shapeSprite.opacity = 0;
}
  

Однако это просто удаляет последнюю созданную фигуру, а не ту, которая задействована — может кто-нибудь, пожалуйста, указать мне правильное направление здесь, пожалуйста?

Комментарии:

1. сохраняйте все спрайты в массиве, при касании экрана затем сравнивайте, находится ли положение касания внутри поля привязки любого спрайта. Если да, то этот спрайт коснулся и делайте все, что хотите.

Ответ №1:

Попробуйте с этим, убедитесь, что у вас есть self.userInteractionEnabled = YES; в init

 -(void) touchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
    CGPoint touchLoc = [touch locationInNode:self];

    // detect Sprite
    for (CCSprite *mySprite in self.children) {

        float distance = pow(mySprite.position.x - touchLoc.x, 2)   pow(mySprite.position.y - touchLoc.y, 2);
        distance = sqrt(distance);
        if (distance <= 60) { //60 is radius from sprite center, change it
            // do something with this sprite
            mySprite.opacity = 0;

        }
    } 
}
  

Комментарии:

1. Похоже, это не помогает, спрайты по-прежнему не становятся непрозрачными. Кроме того, Xcode выдает предупреждение о том, как элемент управления достигает конца функции, не являющейся недействительной?

2. Какую версию cocos2d вы используете, v2 или v3?