自機としてPlayerクラスのインスタンスplayerを操作しようと考えています。
WASDの4つのキーで4方に移動しますが、keyDownとkeyUpでは押している間の移動はかろうじてできるのに対し、8方向への入力、つまり同時押しによる斜め方向への移動は不可能でした。
フレームごとにキー入力が受け付けられているようなので、switch文からifで記述もしてみましたが、うまくいきません。何か良いアイデアはありませんでしょうか。

override func keyDown(with event: NSEvent) {
    if event.keyCode == 13 {
        player.moveUp(distance: 10)
    }
    if event.keyCode == 0 {
        player.moveLeft(distance: 10)
    }
    if event.keyCode == 1 {
        player.moveDown(distance: 10)
    }
    if event.keyCode == 2 {
        player.moveRight(distance: 10)
    }
}

以上がkeyDownの中身です。
なお、PlayerクラスはmoveRight, moveLeft ...などのメソッドを持っていて、同名の関数などもありましたがoverrideはしておりませんので独自の関数です。
また中身は単純でPlayerのpositionの値をdistance(引数)に応じて動かすだけです