Bu isteğe bağlı değerin ne olduğunu veya neden bu hatayı aldığımı anlayamıyorum. Puan tamsayıcımı kontrol ettim ve değerinin, düşmanla temas kurmasını sağlayana kadar 0 olduğunu beyan ettim. Simülatörde sayaç, ilk 4 veya 5 düşmanını sayar ve ardından çöker.ölümcül hata: beklenmedik şekilde bulunamadı fizikte İsteğe bağlı bir değer kopyalarken iletişim kurulacak
var score = Int?()
var scoreLabel = UILabel()
override func didMoveToView(view: SKView) {
scoreLabel.text = "\(score)"
scoreLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 100, height:
20))
scoreLabel.textColor = UIColor.blackColor()
score = nil
if score == nil {
score = 0
scoreLabel.text = "\(score!)"
}
func didBeginContact(contact: SKPhysicsContact) {
let firstBody : SKPhysicsBody = contact.bodyA
let secondBody : SKPhysicsBody = contact.bodyB
if ((firstBody.categoryBitMask == PhysicsCategory.bullet) &&
(secondBody.categoryBitMask == PhysicsCategory.enemy) ||
(firstBody.categoryBitMask == PhysicsCategory.enemy) &&
(secondBody.categoryBitMask == PhysicsCategory.bullet)) {
//i get the error next line
collisionWithBullet((firstBody.node as! SKSpriteNode),
bullet: (secondBody.node as! SKSpriteNode))
}
}
func collisionWithBullet(enemy: SKSpriteNode, bullet: SKSpriteNode){
score? += 1
scoreLabel.text = "\(score!)"
enemy.removeFromParent()
bullet.removeFromParent()
}
Amaç c olurdu '[düşman removeFromParent]' sonra zinciri giriş Başlangıç –
. ÇarpışmaWithBullet aranıyor mu? Eğer öyleyse, düşman nedir ve çağrıldığında mermi nedir? –
Neden "skoru" isteğe bağlı olarak bildiriyorsunuz? Eğer başlangıç değeri 0 ise yine de isteğe bağlı olmayan değişken olarak varsayılandır 'var puan = 0' – vadian