2014-12-17 3 views
2
이이 주제에 대한 후속 질문

:화살표 키가 다른 것으로 표시 되었습니까? [느릅 나무]

Creating custom keyboard controls [Elm]

I 플레이어가 컨트롤을 사용자 정의 할 수있는 기능을 추가하고있다. 그러나 화살표 키가 스스로를 나타내는 방식은 정말로 이상합니다. 나는 그걸 조금 알아챌거야. 내가 가지고있는 것은 다음과 같습니다 : 나는 버튼을 클릭하고있어 동안

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/ChartoCodefromCode과 같이 유니 코드를 사용하려고하면 ingame 키가 여전히 작동하지 않고 화살표 기호가 예상되는 곳에 오류 아이콘이 표시됩니다. 버튼. 이것은 유니 코드가 16 진수이기 때문일 수 있습니다.

하지만! 새로 얻은 기능을 사용하여 버튼을 누른 채로 키를 누른 상태로 컨트롤을 사용자 정의 할 수 있습니다. 이것은 나의 화살표 키가 작동하게 않았지만, 대신 다음과 같은 기호를 보여 주었다 :

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

이 내 화살표 키가 작동 만든 같은 유니 코드가 이러한 무작위로 문자를 표시하는 것을 의미한다. 이상하지 않니? 누구든지 엘름이 사용하는 유니 코드 값을 어디에서 찾을 수 있는지 알고 있다면 좋을 것입니다. 키를 입력하지 않으면 기본적으로 화살표 키를 설정하려고합니다. 적절한 유니 코드를 html로 변환 할 수있는 것이 있습니까? 이 중요한 경우

, 나는 여전히 13

업데이트

그래서 나는 각각 키 코드 38, 40, 37, 39을 알아 냈 화살표 문자 (디스플레이에 해당 느릅 나무 버전을 사용하고 있습니다 기호는 이러한 동일한 값에 해당하지만 html로 표시됩니다.

답변

2

이미 알았 듯이 37-40 키 코드는 필요한 것입니다. 이것들은 또한 the source code of Keyboard.arrows에서 찾을 수 있습니다.

KeyCode은 임의의 이름 일뿐만 아니라 사용되는 JavaScript 키 코드를 암시합니다. ECMAScript 문서 및 기타 인터넷 소스에서 빠른 검색으로 정의를 찾을 수 없기 때문에 브라우저가 키 코드 사용에 항상 호환되는 것은 아닙니다. 따라서 이것은 표준 웹 프로그래밍 혼란으로 처리가 천천히 진행됩니다. 이것이 Elm으로 흘러 들어가는 것은 논란의 여지는 있지만, 메일 링리스트에서이 토론을 계속하는 것이 가장 좋습니다.

+0

매우 불행합니다. 소스 btw를 연결해 주셔서 감사합니다. 지금부터는 http://library.elm-lang.org/catalog/elm-lang-Elm/0.13/의 핵심 라이브러리보다 github 페이지를 참고하는 것이 더 좋습니다. 정보는 일종의 미숙 한 imo입니다. – Babyburger

관련 문제