我想用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爱好者的解决方案。
如果您需要帮助,请通知我以获取更多信息。
答案 0 :(得分:1)
听起来您只需要确定您的SKScene被指定为第一响应者,这意味着所有事件都会首先通过您的SKScene进入。
因此,当您的游戏(或场景)启动时,请确保您的NSWindow使用您的SKScene对象作为参数调用"makeFirstResponder:
"。