2012-02-17 2 views
1

В последнее время я задавал много вопросов, извините. Я получаю сообщение об ошибке, когда появляется & lt.cocos2D & lt не работает

-(void) SpritesDidCollide { 

CCNode *player = [self getChildByTag:kTagPlayer]; 
CCNode *computer = [self getChildByTag:kTagComputer]; 

float xDif = computer.position.x - player.position.x; 
float yDif = computer.position.y - player.position.y; 
float distance = sqrt(xDif * xDif + yDif * yDif); 

if (distance &lt 45;) { //--------------------Right Here------------------- 
    [self unschedule:@selector(SpritesDidCollide)]; 
    [[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:1 scene:[GameOver node]]]; 
} 

} 
+1

меньше, чем '<'; меньше или равно '<=' – 0xDE4E15B

+0

Я пробовал эти, ни один из них не работает, я получаю больше ошибок ... – AaronChapmanDev

+0

Действительно ?! if (расстояние <45) – 0xDE4E15B

ответ

4

Почему не просто:

if (distance < 45) { 
+0

Ничего себе. Вы ingenius. – AaronChapmanDev

+0

Подождите! Теперь экран даже не загружается, моя программа вылетает. – AaronChapmanDev

+0

*** Ошибка утверждения - [CCTimer initWithTarget: селектор: интервал:] Значит что-нибудь? – AaronChapmanDev

0
if (distance &lt 45;) { 

Взгляните еще раз. Для сравнения используйте операторы сравнения сравнения, такие как '==', '<', '>', '< =', '> ='. Внутри скобок в вашем случае нам не нужно ';'.
'(выражение;)' такая конструкция неприемлема.

if (distance < 45) { 
+0

Код теоретически работает отлично, но как только я попытаюсь перейти к этому представлению, он сработает ... Если вы не возражаете ... Вот мой весь файл. – AaronChapmanDev

+0

Мы не можем помочь вам, пока не увидим вашу проблему. Добавьте еще несколько кодов и сообщений об ошибках. – 0xDE4E15B

+0

Я добавил весь свой файл. Ill также добавляет сообщения об ошибках консоли. Одна секунда. – AaronChapmanDev

1

Посмотрите, что подпись не найдена для селектора - имеет ли она следующую форму? - (Недействительными) имя: (ccTime) дт»

ваш селектор (SpritesDidCollide) не принимает ccTime ...

изменение

-(void)SpritesDidCollide 

в

-(void)SpritesDidCollide:(ccTime)dt 

и изменения

[self unschedule:@selector(SpritesDidCollide:)]; // Note added colon : after method name 

мая также необходимо изменить расписание и добавить двоеточие: где бы вы ни были первоначально настроены

[self schedule: @selector(SpritesDidCollide:)]; 
Смежные вопросы