2016-02-18 6 views
0

Я очень новичок в быстром и кодировании, поэтому любая помощь очень ценится! У меня есть CCLabelTTF в качестве хранителя очков, который должен обновляться каждый раз, когда вы проходите мимо и препятствия. Столкновение работает и точки, кажется, растет в моей консоли правильно, но я пытаюсь использовать это, чтобы обновить фактическое CCLabelTTF, который отображается на экране:Мой ярлык не будет обновляться и вызывает мою игру сбой

func ccPhysicsCollisionBegin(pair: CCPhysicsCollisionPair!, hero nodeA: CCNode!, goal: CCNode!) -> Bool { 
    goal.removeFromParent() 
    points++ 
    scoreLabel.string = String(points) //the line appearing to cause the crash 
    return true 
} 

Im используя SpriteBuilder и Xcode, если что помогает. Извините, если это глупый вопрос!

Edit: Вот моя scoreLabel декларация:

weak var scoreLabel : CCLabelTTF! 
+0

Что такое сообщение об аварии? – tktsubota

+0

Тема 1: XC_BAD_INSTRUCTION (код = XC_I386_INVOP, subcode = 0x0) –

ответ

0

Из декларации вашего лейбла, это, вероятно, означает, что ваш лейбл nil. Убедитесь, что вы добавляете метку в

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

func ccPhysicsCollisionBegin(pair: CCPhysicsCollisionPair!, hero nodeA: CCNode!, goal: CCNode!) -> Bool { 
    goal.removeFromParent() 
    points++ 
    if scoreLabel != nil { 
     scoreLabel.string = String(points) 
     print("scoreLabel exists") 
    } else { 
     print("scoreLabel is nil") 
    } 
    return true 
} 

Если он печатает «scoreLabel равна нулю» в консоли, тест подтверждает, что ваш метки не существует.

Редактировать

Вы сказали, что вы никогда не инициализируетесь метки, так что добавьте этот код в соответствующей функции (viewDidLoad: или некоторый эквивалент в Кокосовом-2d - Я не знаком с ним):

scoreLabel = CCLabelTTF(string: "", fontName: "FONT_NAME_HERE", fontSize: FONT_SIZE_HERE) 
+0

По-прежнему даю мне ту же ошибку:/ –

+0

@BrianLobo Можете ли вы добавить строку декларации 'scoreLabel' в свой вопрос? – tktsubota

+0

Я добавил его к моему вопросу. –

0

Я понял! Я создал код в spriteBuilder, который, как я думаю, не сохранил, поэтому он делал scoreLabel nil. Спасибо за помощь ребятам :)