초급강의실
2016.04.05 11:27

Input 객체의 키코드 확장

조회 수 1261 추천 수 0 댓글 8
Atachment
첨부 '2'
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

 

Input.isPressed(keyName) 함수 또는 Input.isTriggered(keyName) 함수로 해당 키가 눌려있는지 확인을 해야 할 때 
 
해당 키코드가 없다면 키코드를 확장해야만 합니다. 
 
결론부터 말하자면, 이것은 굉장히 간단합니다
 
RPG Maker MV 에서는 Input 객체의 소스 코드가 공개되어있기 때문입니다.
 
다음과 같이, Input.keyMapper 라는 JSON 타입의 변수에 keyCode(키코드)와 keyName(키의 이름)을 설정해주면 됩니다.
 
키의 이름은 원하는 이름을 지정할 수 있지만, 키코드는 표준 키코드를 지정해줘야 합니다.
 
표준 키코드는 이 링크를 참고하시기 바랍니다.
 
1
Input.keyMapper[keyCode] = 'keyName';
cs
 
예제에서는 T 키를 눌렀을 때 메시지 박스를 띄워보도록 하겠습니다.
 
키코드 API 를 참고해보면 T 키의 keyCode 가 84 라는 것을 알 수 있습니다.
 
6.PNG

 

그러면 아래과 같이 키코드를 설정해줄 수 있습니다.
 
1
Input.keyMapper[84= 'T';
cs

 

이렇게 설정한 것을, 플러그인이나 스크립트로 만들어 실행을 해주면 정상적으로 처리가 됩니다. 

 
이제, 아래와 같은 스크립트를 병렬 이벤트로 실행시켜보면,
 
1
2
3
if(Input.isPressed('T')) {
 alert("T 를 눌렀습니다");
}
cs
 
아래와 같이 T 키를 눌렀을 때 메시지 박스가 뜨게 됩니다.
 
7.PNG

 

?
  • ?
    A구몽 2016.04.14 10:14
    RPGmakerVX ace 에서 키코드 확장은 어떻게되는지 알려주실 수 있나요?
  • profile
    러닝은빛 2016.04.14 19:06
    https://msdn.microsoft.com/en-us/library/windows/desktop/ms646293(v=vs.85).aspx

    윈도우에서 제공하는 위 링크와 같은 키보드 API 함수를 Win32API 로 바인딩하여 Input 객체를 확장해야 합니다. 프로그래밍이 필요한 부분이므로 직접 작성할 계획이 아니시라면 전체키 스크립트를 찾아보시기 바랍니다.
  • ?
    A구몽 2016.04.15 17:30
    네... 뭔가 어렵군요.
  • ?
    A구몽 2016.04.15 17:45
    루비자체에서 지원하는 라이브러리 메소드는 없나요?
    키의 입력 상태로 진릿값을 반환해준다거나...
  • profile
    러닝은빛 2016.04.16 20:56
    루비는 윈도우에 의존성이 있는 것이 아니기 때문에 키보드 함수 같은 것은 없습니다. 라이브러리 쪽은 있을 수 있겠으나, 알만툴에 포함되어있는 루비는 개발사에서 수정한 거라 라이브러리를 사용할 수 없게 해놨습니다. 루비에는 좋은 라이브러리가 많지만 사용할 수 없기 때문에 전체키 스크립트 같은게 만들어진 것입니다.
  • ?
    A구몽 2016.04.17 13:16
    아... 이런...
    답변 감사합니다.
  • profile
    gcyong 2017.08.28 02:36
    여담이지만 GetAsyncKeyState함수는 MSB를 조사하셔야 합니다. 러닝은빛님께서 올려주신 링크에 리턴값에 대해 자세히 설명되어있습니다.
    그리고 당연하지만 키가 눌릴 때 까지 반환하지 않는 함수가 아닙니다. 반복문으로 원하는 키가 눌릴 때 까지 조사하셔야 합니다. 따라서 본 게임 제어를 흐릴 수 있으므로 키를 따로 받기 위해서는 CreateThread(https://msdn.microsoft.com/ko-kr/library/windows/desktop/ms682453(v=vs.85).aspx)와 같은 함수도 필요할겁니다. 키를 따로 받는 스레드와 게임쪽 스레드를 유지한 상태에서 키가 눌렸을 때 적절한 처리를 해야합니다.
  • profile
    gcyong 2017.08.28 02:38
    참고로, Win32App으로 작성하시면 굳이 GetAsyncKeyState 함수가 아니라도 윈도우 메시지로 가상 키 코드를 받을 수 있습니다. 윈도우가 직접 WndProc 콜백함수로 보내주거든요. 다만, 콘솔이나 RPG만들기처럼 이런 콜백함수를 따로 정의할 수 없을 때는 GetKeyState함수나 GetAsyncKeyState 함수를 사용합니다. (아주 예전에 듣기로는 GetKeyState보다 Async를 쓰라고 한 것 같습니다만 정확하지는 않습니다.)

  1. 게임제작강좌 A-Z 색인 (2016.1.24 ver)

    Date2016.01.12 Category초급강의실 By천무 Views7373 Votes1
    read more
  2. [야매 알만툴 MV 강좌] - 연출과 기능. 두마리 토끼를 동시에.

    Date2018.09.10 Category초급강의실 By케이디 Views2392 Votes0
    Read More
  3. RPG Maker MV에서 도트 느낌의 폰트 사용하기

    Date2018.07.15 Category초급강의실 By러닝은빛 Views4534 Votes1
    Read More
  4. [ MV ] 1-1 " RPG MAKER MV에 대하여 알아보자! "

    Date2018.07.01 Category초급강의실 By수성의물 Views1640 Votes0
    Read More
  5. [DLC 매뉴얼] GENE 도움말 한글화 Part.3 이용규약

    Date2018.04.25 Category초급강의실 By이니군 Views624 Votes0
    Read More
  6. [DLC 매뉴얼] GENE 도움말 한글화 Part.2 이벤트 타입과 메뉴 바 컨텐츠

    Date2018.04.25 Category초급강의실 By이니군 Views675 Votes0
    Read More
  7. [DLC 매뉴얼] GENE 도움말 한글화 Part.1 씬 빌더의 개요와 씬빌더 시작하기

    Date2018.04.24 Category초급강의실 By이니군 Views1997 Votes1
    Read More
  8. 느무느무 쉬운 XAS강좌!(VXA용)1.다운로드 및 규정.

    Date2017.11.28 Category초급강의실 By약빨은ㄱㅏㅅㅣ Views1368 Votes0
    Read More
  9. 저 같은 사람 생기지 말라고 만드는 XAS(액션알피지[액알])강 좌!(VX ACE용)

    Date2017.11.28 Category초급강의실 By약빨은ㄱㅏㅅㅣ Views1224 Votes0
    Read More
  10. [MV] Iavra Splash Video(스플래시/인트로영상 제작 시 스킵기능 부여 플러그인)

    Date2017.09.11 Category초급강의실 By이니군 Views1001 Votes0
    Read More
  11. RPG MAKER MV Tool Program-MADO 설치 및 적용기

    Date2017.09.08 Category초급강의실 By이니군 Views2206 Votes0
    Read More
  12. 커먼이벤트로 은행시스템 만들기(23:00 그림 링크 재수정)

    Date2017.08.28 Category초급강의실 By이니군 Views1469 Votes0
    Read More
  13. [RMMV] 크로노 엔진(Chrono Engine) 플러그인 사용법

    Date2017.07.16 Category고급강의실 By러닝은빛 Views3578 Votes2
    Read More
  14. 네코플에서 VXA 선택지 잘리는 버그 해결하는법

    Date2017.06.22 Category중급강의실 By심심치 Views919 Votes2
    Read More
  15. 변수를 이용한 식물 재배

    Date2017.05.28 Category초급강의실 ByMoonJ Views3055 Votes2
    Read More
  16. 누구나 쉽게 따라할 수 있는 액션/슈팅 이벤트 만들기!

    Date2017.01.26 Category초급강의실 By이제리아 Views4044 Votes2
    Read More
  17. RPG란 무엇인가?가 하는 강의-1편:대쉬 속도와 걷는 속도를 어떻게 바꾸는가?-

    Date2016.10.31 Category중급강의실 ByRPG란무엇인가? Views2167 Votes0
    Read More
  18. 쯔꾸르 게임을 네코플레이어에 최적화 시켜보자! # 해상도 편

    Date2016.04.17 Category중급강의실 By양갱님 Views35710 Votes10
    Read More
  19. 게임의 퀼리티를 높이자! 3편-맵배치

    Date2016.04.08 Category초급강의실 Byifeve Views4954 Votes2
    Read More
  20. Input 객체의 키코드 확장

    Date2016.04.05 Category초급강의실 By러닝은빛 Views1261 Votes0
    Read More
  21. 초보가쓰는 초보용 Rpg게임 만들기 (xp)

    Date2016.03.13 Category초급강의실 ByMarine Views6152 Votes0
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10






[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)