Поиск спрайтов в Cocos2d - PullRequest
0 голосов
/ 02 мая 2011

Я ищу способ найти имя файла переменной CGSprite, а затем использовать его в операторе IF. Как это:

if(target.spritefilename?? == @"Car1.png")
{
    target = [CCSprite spriteWithFile:@"Car1_dead.png" rect:CGRectMake(0, 0, 37, 76)];
}

Ответы [ 7 ]

3 голосов
/ 03 мая 2011

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

В спрайте есть свойство "userData" (унаследованное от родительского), которое вы можете использоватьхранить ваши пользовательские данные.Поэтому, когда вы создаете свои спрайты, вы также должны назначить идентифицированное свойство userData.

Как и в вашем случае, когда вы впервые создаете свой «целевой» спрайт, вы можете установить: «target.userData ="

Позже вы можете проверить, соответствует ли target.userData вашему имени файла.

Это правильный способ хранения пользовательских данных в ваших спрайтах.

Надеюсь, это поможет.

2 голосов
/ 02 мая 2011
if([target.spritefilename isEqualtoString:@"Car1.png"]) 

это то, что я думаю, вы ищете.

1 голос
/ 02 мая 2011

Вы можете использовать isEqualtoString для сравнения строк.

if([target.spritefilename isEqualtoString:@"Car1.png"])

Для NSString .

0 голосов
/ 29 октября 2012

Если целью этого является просто идентификация спрайта, вы можете просто сделать это, используя свойство тега спрайта.

Как установить таф для спрайта при инициализации или создании спрайта как

CCSprite *spr1=[CCSprite spriteWithFile:@"1.png"];
spr1.tag=1;

CCSprite *spr2=[CCSprite spriteWithFile:@"2.png"];
spr2.tag=2;

и при получении спрайта для конкретного события используйте для получения значения тега как

if([(CCSprite*)tagetSprite tag]==1)
{
}
else if([(CCSprite*)tagetSprite tag]==2)
{
}
0 голосов
/ 02 февраля 2012
if([(NSString*)sprite.userData hasPrefix@"Car1"])
  ...
0 голосов
/ 03 мая 2011
If([sprite.userData hasPrefix@"Car1"])
...
0 голосов
/ 02 мая 2011

сохраните имена спрайтов в массиве и убедитесь, что текущее имя спрайта совпадает с именем в массиве.

if([image_array containsObject:@"car.png"])
{
NSLog(@"Image Found");
} 

Надеюсь, это поможет !!!

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