【发布时间】:2012-01-30 17:57:30
【问题描述】:
这是为了实现一个基于键盘的游戏控制器。 左/右箭头使角色行走。 shift+left/right 使角色运行。
这是我目前使用的代码:
- (void)keyDown:(NSEvent *)event{
if ([event modifierFlags] & NSShiftKeyMask) {
NSLog(@"Shift key pressed");
}
// logic follows
}
如果在按箭头键之前按了 shift,这将正常工作。 但是如果按下箭头键并且你需要加速,按下 shift 不会导致任何事情发生......
所以,我看到了这样的答案: https://stackoverflow.com/a/420691/987818
但我不明白这个 NSResponder 的用途。对于信息,我使用 Cocos2D(objc 游戏引擎)。
感谢任何线索 :-) J.
【问题讨论】:
-
有关实现 flagsChanged 的示例,请查看 Kobold2D 的 KKInput 实现:github.com/kobold2d/Kobold2D/blob/master/Kobold2D/__Kobold2D__/…
-
@LearnCocos2D 嘿,谢谢 Steffen。那个KK文件刚刚解决了这一切!好东西,现在我的 CCLayer 实现使用内置的 -(BOOL)ccFlagsChanged:(NSEvent*)event 正确处理 shift 键;好的!祝你有美好的一天。
标签: objective-c cocos2d-iphone shift nsevent nsresponder