macos – 如何在Swift中获取按下的键
发布时间:2020-12-14 05:29:00 所属栏目:百科 来源:网络整理
导读:我正在尝试学习 Swift语言,并在Youtube上学习了很多教程.由于它们大部分都是针对iOS的,我想制作这个版本的OSX版本: https://www.youtube.com/watch?v=8PrVHrs10to(SideScroller游戏) 我小心翼翼地跟着它,但是当我必须更新玩家位置时,我被困在大约22分钟的视
我正在尝试学习
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,并且有没有人有更简洁的方法来获取按下的键? 谢谢
好的,我发现了如何更新,所以我在这里发布’因为它可能会帮助别人.想法是使用布尔值:
var manIsMoving:Bool = false override func keyDown(theEvent: NSEvent!) // A key is pressed { if theEvent.keyCode == 123 { direction = "left" //get the pressed key } else if theEvent.keyCode == 124 { direction = "right" //get the pressed key } else if theEvent.keyCode == 126 { println("jump") } manIsMoving = true //setting the boolean to true } override func keyUp(theEvent: NSEvent!) { manIsMoving = false } override func update(currentTime: CFTimeInterval) { if manIsMoving { updateManPosition(direction) } else { cancelMovement() } } 它可能会帮助别人.但获得按键的字符仍然不清楚…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |