2

这是为了实现一个基于键盘的游戏控制器。左/右箭头使角色行走。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。

4

1 回答 1

3

你需要flagsChanged:在你实现这个-keyDown:方法的同一个类中实现,或者只是任何可以捕获这个事件的 NSResponder 子类(例如 NSApplication)。

于 2012-01-30T18:29:31.797 回答