這是實現基於鍵盤的遊戲控制器。 左/右箭頭使角色走路。 shift +左/右使字符運行。Objective-C:在按下另一個鍵時檢測到「shift」按鍵
下面是我使用至今代碼:
- (void)keyDown:(NSEvent *)event{
if ([event modifierFlags] & NSShiftKeyMask) {
NSLog(@"Shift key pressed");
}
// logic follows
}
如果偏移按箭頭鍵之前按下這個工作正常。 但是,如果箭頭鍵被按下,你需要加速,按shift不會導致發生什麼事......
所以,我認爲這是這樣回答的: https://stackoverflow.com/a/420691/987818
但我不瞭解此NSResponder的使用位置。有關信息,我使用Cocos2D(objc遊戲引擎)。
感謝:-) 任何線索J.
有關實現flagsChanged的示例,請查看Kobold2D的KKInput實現:https://github.com/kobold2d/Kobold2D/blob/master/Kobold2D/__Kobold2D__/kobold2d/KKInputKeyboard.m – LearnCocos2D 2012-01-30 22:30:26
@ LearnCocos2D嗨,感謝Steffen。 KK文件解決了所有這一切!好東西,現在我的CCLayer實現使用內置的 - (BOOL)ccFlagsChanged:(NSEvent *)事件正確地處理shift鍵;太好了!祝你有美好的一天。 – Jem 2012-01-31 08:43:45