swift - 在 Swift 中为 SceneKit 游戏使用方向键输入

标签 swift scenekit nsevent

我正在尝试创建一个 swift 文件,该文件将在 swift 中检测来自 MacOS 的 SceneKit 游戏的键盘输入。我正在使用 NSEvent 来处理关键事件,但我不断收到错误消息“使用未声明的类型 NSEvent。有没有更简单的方法来实现这一点?

我试过下面的代码:

override func keyDown(event: NSEvent) {
    interpretKeyEvents([event]) // calls insertText(_:), moveUp(_:), etc.
}

override func insertText(insertString: AnyObject) {
    let str = insertString as! String
    switch str {
    case " ":
        println("User hit the spacebar.")
    default:
        println("Unrecognized input: \(str)")
    }
}

override func moveUp(sender: AnyObject?) {
    println("Up arrow.")
}

override func moveLeft(sender: AnyObject?) {
    println("Left arrow.")
}

override func deleteBackward(sender: AnyObject?) {
    println("Delete.")
}

最佳答案

这会起作用:

override func keyDown(theEvent: NSEvent) {
    let keyCode = theEvent.keyCode if(keyCode == 123)//Left{
    }
    if(keyCode == 124)//Right
    {
    }
    if(keyCode == 125)//Down
    {
    }
    if(keyCode == 126)//Up
    {
    }

关于swift - 在 Swift 中为 SceneKit 游戏使用方向键输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31881911/

相关文章:

html - Swift:如何显示来自 html 源的图像

swift - SceneKit euler 在旋转期间角度奇怪的值

scenekit - 如何在 SCNTechnique 中使用模板?

swift - Cocoa 监听键盘命令+向上事件

cocoa - 单击 NSControl 时不会调用 mouseDown 事件,即使在子类 NSView 上也不会调用

swift 3 : convert a null-terminated UnsafePointer<UInt8> to a string

ios - 如何使用解析终止重复的用户 session ?

ios - 启动时继续

来自 ARKit 深度缓冲区的 SceneKit 点云

objective-c - mouseDown 时禁用 mouseEntered 事件(NSEvents Mac)