2

これは、このトピックのフォローアップの質問です。

カスタムキーボードコントロールの作成 [Elm]

プレイヤーがコントロールをカスタマイズできる機能を追加しています。しかし、矢印キーがそれ自体を表す方法は本当に奇妙です。それについては後ほど説明します。私が持っているものは次のようになります:

ck2up : Input [KeyCode]
ck2up = input [toCode 'W']

ck2down : Input [KeyCode]
ck2down = input [toCode 'S']

ck2left : Input [KeyCode]
ck2left = input [toCode 'A']

ck2right : Input [KeyCode]
ck2right = input [toCode 'D']

ボタンをクリックしているKeyboard.keysDown に入力を受け取ります。これは通常の Char 入力では問題なく機能しますが、シンボルを使用したい場合、奇妙なことが起こります。デフォルトで一人のプレイヤーに矢印キーを付けたかったのですが、カスタマイズしなければならないので使えませんKeyboard.arrows。プレイヤー 1 には以下が含まれます。

ck1up : Input [KeyCode]
ck1up = input [8593]

ck1down : Input [KeyCode]
ck1down = input [8595]

ck1left : Input [KeyCode]
ck1left = input [8592]

ck1right : Input [KeyCode]
ck1right = input [8594]

これはhttp://character-code.com/arrows-html-codes.phpから取得したものです。これらは、矢印キーの HTML コードです。ボタンに現在のキーを表示すると、矢印が正しく表示されます。

(button ck1up.handle kd (append "up: " (fromList [fromCode pkeys1.up])))

pkeys1.upキーコードを含む。ただし、ゲーム内の矢印キーは反応しません。HTMLはレイアウト用に作成されているため、これは予想されることですが、http://library.elm-lang.org/catalog/elm-lang-Elm/0.13/Char toCodeおよびで説明されているように、ユニコードを使用しようとするとfromCode、キーインゲームはまだ機能せず、ボタンの矢印記号を期待していた場所にエラー アイコンが表示されます。これは、Unicode が 16 進数であるためである可能性があります。

しかし!キーを押しながらボタンを押すことで、新しく得た機能を使用してコントロールをカスタマイズできます。これにより、矢印キーが機能しましたが、代わりに次の記号が表示されました。

up: &
down: (
left: %
right: '

これは、矢印キーを機能させたのと同じ Unicode が、これらのランダムな記号を表示していることを意味します。変じゃない?Elm が使用する unicode 値をどこで見つけることができるかを誰かが知っていれば、それは素晴らしいことです。キーが入力されていない場合、矢印キーをデフォルトとして設定したい。適切に表示するために、これらのユニコードをhtmlにも変換するものはありますか?

念のために言うと、私はまだ Elm バージョン 13 を使用しています。

アップデート

したがって、KeyCode 38、40、37、および 39 がそれぞれ矢印文字に対応していることがわかりました (表示記号はこれらの同じ値に対応していますが、html 内にあります)。

4

1 に答える 1