keyDown按故障

时间:2014-02-22 21:32:35

标签: objective-c keydown

我想用Sprite Kit在Xcode中组装一个乒乓球游戏。但是我想为Mac OS X做这个,没有关于修复我的代码的教程,我想做一个keydown事件来移动paddle。这是我的代码。

-(void)keyDown:(NSEvent *)theEvent {
    /* Called when a keyPress occurs */
    // inside code
}

编辑: 所以我下载了一个Xcode项目的pong游戏,然后我看着它看到了这个:

- (void)handleKeyEvent:(NSEvent*)keyEvent keyDown:(BOOL)isKeyDown {

if ([keyEvent keyCode] == LED_PONG_MOVE_UP || [keyEvent keyCode] == LED_PONG_MOVE_UP_ALT) {
    self.moveUp = isKeyDown;
} else if ([keyEvent keyCode] == LED_PONG_MOVE_DOWN || [keyEvent keyCode] == LED_PONG_MOVE_DOWN_ALT) {
    self.moveDown = isKeyDown;
}

}

和此:

#define LED_PONG_MOVE_UP        13  // W
#define LED_PONG_MOVE_UP_ALT    126 // Arrow Up
#define LED_PONG_MOVE_DOWN      1   // S
#define LED_PONG_MOVE_DOWN_ALT  125 // Arrow Down

所以关于我的任何人,iOS仇恨者和Mac OS X爱好者的解决方案。

如果您需要帮助,请通知我以获取更多信息。

1 个答案:

答案 0 :(得分:1)

听起来您只需要确定您的SKScene被指定为第一响应者,这意味着所有事件都会首先通过您的SKScene进入。

因此,当您的游戏(或场景)启动时,请确保您的NSWindow使用您的SKScene对象作为参数调用"makeFirstResponder:"