【问题标题】:Recognize W,A,S,D Spacebar key pressed in Sprite Kit [duplicate]识别 Sprite Kit 中按下的 W、A、S、D 空格键 [重复]
【发布时间】:2014-07-14 02:35:54
【问题描述】:

我正在制作SpriteKit 游戏,但我无法识别何时按下某个键。我要专门识别按键:W, A, S, D, spacebar, and ESC

例如:

if (w is press) {
     //jump
}

【问题讨论】:

  • 这是什么语言?
  • 示例不是语言。这正是我想做的。
  • 我正在寻找的语言是 SpriteKit。
  • 这取决于您要实现它的语言。大多数都有可以捕获关键事件的库。不过,我认为在问这个问题之前,你应该先自己做一些研究。
  • SpriteKit 是 iOS 的一个库,它使用了 Objective-C。我建议先学习如何在 Objective-C 中编程,然后查看这个库的教程。

标签: sprite-kit sprite


【解决方案1】:

这是通过使用以下代码完成的:

    - (void)keyDown:(NSEvent *)event {
        [self handleKeyEvent:event keyDown:YES];
    }

    - (void)keyUp:(NSEvent *)event {
        [self handleKeyEvent:event keyDown:NO];
    }

    - (void)handleKeyEvent:(NSEvent *)event keyDown:(BOOL)downOrUp {
         NSString *characters = [event characters];
         for (int s = 0; s<[characters length]; s++) {
            unichar oneCharacter = [characters characterAtIndex:s];
            switch (oneCharacter) {
                case 'w':
                    [character jump];
                    break;
                case 'a':
                    [character left];
                    break;
                case 'd':
                    [character right];
                    break;
                case 's':
                    NSLog(@"Down");
                    break;
                case ' ':
                 NSLog(@"Shoot");
                 break;
            }
        }
    }

我想感谢:Heyfara(他/她在另一个问题中回答了这个问题)。要查看原始帖子,请单击此处:How Can I get keyboard input in a SpriteKit Game?

【讨论】:

    猜你喜欢
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多