2015-02-03 6 views
0

У меня есть спрайты, идущие со дна экрана в случайном порядке. Я хочу пронести спрайт в направлении салфетки. У меня есть алгоритм для прокрутки. Кроме того, я получаю сообщение NSLog всякий раз, когда какой-либо спрайт был затронут на экране. NSLog дает правильные ответы на любой затронутый объект. Но как я узнаю, какой спрайт был прокручен, чтобы написать код для применения импульса к этому конкретному спрайту?Как узнать, какой спрайт был затронут?

Я пытаюсь следующий код:

   SKNode *sprite = [self nodeAtPoint:location]; 
       [ball.physicsBody applyImpulse:CGVectorMake(dx, dy) atPoint:location]; 
       [self addChild:sprite]; 

Кроме того,

userInteractionEnabled = YES для всех спрайтов

И все спрайты выполнения действия (Только в случае, если это причина, по которой я не могу пронести их, пока они уже запускают действие, в этом случае что еще я должен использовать для перемещения спрайтов?)

Извините, f это слишком глупый, я noob

Заранее спасибо!

+0

Возможный дубликат [Sprite Kit/Objective C: Что такое «индикатор касания» для объектов] (http://stackoverflow.com/questions/23132020/sprite-kit-objective-c-what-is-the- touch-indicator-for-objects) – Larme

ответ

3

Вам нужно будет использовать имя спрайта со свойством имя:

node.name = @"nodeName"; 



for(SKNode *node in [self nodesAtPoint:location]) 
{ 
    if([node.name isEqualToString:@"nodeName"]) 
     { 
      // your custom code here 
     } 
} 

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

+0

Хорошо, поэтому я попробовал это. Но я не знаю, если он туда доберется. Я добавил следующий код, чтобы добавитьImpulse к спрайту, который был взломан: if ([node.name isEqualToString: @ "sprite"]) { [sprite.physicsBody applyImpulse: CGVectorMake (dx, dy) atPoint: location]; } –

+0

на самом деле это должен быть node.physicsBody ... –

+0

не нужно ли добавлять узел, если я использовал node.physicsBody? и до сих пор не применяется импульс :( –

Смежные вопросы