SKSpriteNode touch не обнаружен - PullRequest
0 голосов
/ 24 июня 2018

Я пытаюсь внедрить кнопку паузы в мою игру.Однако каждый раз, когда я нажимаю кнопку паузы (SKSpriteNode) на моем устройстве iOS, ничего не происходит.Я пытался заставить кнопку выполнять другие действия и пытался заставить другие спрайты делать это.Ни один не сработал, хотя я могу коснуться любого места на экране, и действие выполняется.Я использую Swift 4 с последней версией Xcode (9.4.1).Приложение представляет собой игру для iOS, и я использую GameScene.swift, который создается вместе с приложением.

Вот часть кода для кнопки (несущественные части кода не указаны):

import SpriteKit
import CoreMotion
import GameplayKit

class GameScene: SKScene, SKPhysicsContactDelegate {

var pauseButton:SKSpriteNode!

override func didMove(to view: SKView) {

    pauseButton = SKSpriteNode(imageNamed: "pauseButton")
    pauseButton.size = CGSize(width: 50, height: 50)
    pauseButton.position = CGPoint(x: self.size.width - 
    pauseButton.size.width, y: self.size.height - 
        pauseButton.size.height)
    pauseButton.zPosition = 5
    self.addChild(pauseButton)

}

override func touchesEnded(_ touches: Set<UITouch>, with: UIEvent?) {

    fireBullet() //This function does not relate to the pause button.

}

override func touchesBegan(_ touches: Set<UITouch>, with event: 
    UIEvent?) {

    let touch = touches.first

        if let location = touch?.location(in: self) {
            let nodesArray = self.nodes(at: location)

        if nodesArray.first?.name == "pauseButton" {
            self.view?.isPaused = true
        }
    }
}
}

Спасибо заранее, что нашли время ответить, это действительно помогает мне!Thomas

1 Ответ

0 голосов
/ 24 июня 2018

Простое исправление: в вашем методе touchesBegan вы ищете касания на узле с именем "pauseButton", но нет узлов с именем "pauseButton", поэтому ваш поиск возвращает ложное значение.

Просто добавьте pauseButton.name = "pauseButton" к своему коду, где вы установили кнопку паузы, и она должна работать.

...