【发布时间】:2014-09-23 09:16:28
【问题描述】:
我正在努力学习 Swift 语言,我在 Youtube 上学习了很多教程。因为大部分都是iOS版,所以我想做这个的OSX版本:https://www.youtube.com/watch?v=8PrVHrs10to(SideScroller游戏)
我仔细观察了它,但是当我必须更新播放器位置时,我被困在大约 22 分钟的视频中。我的第一个问题是得到按下的键。我来自 C# 语言,所以我想找到类似的东西
If(Keyboard.GetState().IsKeyDown(Keys.Right))
man.Position.x += 5 //player position
但这不存在,所以我想出了这个:
override func keyDown(theEvent: NSEvent!)
{
updateManPosition(theEvent)
}
func updateManPosition(theEvent:NSEvent)
{
if theEvent.keyCode == 123
{
man.position.x -= 2
}
else if theEvent.keyCode == 124
{
man.position.x += 2
}
else if theEvent.keyCode == 126
{
println("jump")
}
}
我使用println(theEvent.keyCode) 找到了相应的值(123/124/126),但如果我必须识别很多键,它就不是很有用。
无论如何,它适用于这个游戏,玩家的位置会改变。但我还有另一个问题,即函数keyDown 似乎在每次更新时都没有被调用(所以每秒60 次),这会阻止玩家顺利移动。
所以,这是我的问题:如何在每次更新时调用 keyDown,有没有人有更简洁的方法来获取按下的键?
谢谢
【问题讨论】:
标签: macos keyboard swift sprite-kit keyboard-events