Мой код не будет работать на моем IPad / не будет работать в целом - PullRequest
0 голосов
/ 28 января 2020

Я работал над кодом, который использует кнопку для вызова сцены. Однако это не сработает на моем IPad, и я думаю, что я, возможно, сделал несколько вещей неправильно, кто-нибудь захочет рассказать мне, как заставить его работать. Вот мой код:

import SpriteKit
import UIKit
import PlaygoundSupport

class ButtonNode: SKSpriteNode {
   var action: ((ButtonNode) -> Void)?

   var isSelected: Bool = false{
      didSet{
          alpha = isSelected ? 0.8 : 1
      }
    }
    required init(coder: NSCoder){
        fatalError("NSCoding not supported")
    }
    init(texture: SKTexture, size: CGSize){
       super.init(texture: texture, color: SKColor.white, size:size)
       isUserInteractionEnabled = true
    }
    override func touchesBegan(with event: NSEvent){
        action?(self)
    }
    override func mouseDown(with event: NSEvent){
        action?(self)
    }
}
class GameScene: SKScene{
   override func didMove(to view: SKView){
   }
}
let scene = GameScene(size: CGSize(width: 400, height: 640)
scene.scaleMode = .aspectFill
scene.backgroundColor = .gray

let view = SKView(frame: CGRect(x:0, y:0, width: scene.size.width, height: scene.size.height))
view.presentScene(scene)
PllygroundPage.current,liveView = view
start button = ButtonNode(texture: SKTexture(imageNamed: "start-button"), size: CGSize(width:184, height: 72))
startButton.position = CGPoint(x: 0.0, y: 0.0)
startButton.action = { (button) in
if let scene = IntroCutScene(fileNamed: "IntroCutScene"){
    self.scene!.scaleMode = .aspectFill
    GameVariables.sceneView.presentScene(scene, transition: SKTransition.moveIn(with: SKTransitionDirection.right, duration: 2.5))
    }
}
self.addChild(startButton)

появляется сообщение об ошибке: использование необъявленного типа 'NSEvent'

1 Ответ

1 голос
/ 28 января 2020

Вы импортируете UIKit (правильно, так как вы хотите работать на iPad). Тип события в UIKit - UIEvent, а не NSEvent. Вы реализовали неправильный метод с неправильной платформы. Похоже, вы реализовали этот метод:

https://developer.apple.com/documentation/appkit/nsresponder/1531151-touchesbegan

Это тот, который вы хотите:

https://developer.apple.com/documentation/uikit/uiresponder/1621142-touchesbegan

(и т. Д.).

...