2016-10-08 3 views
0

을 위해, 나는 그것을 원하는 그래서 나는 2 (특히, A와 D 모두) 함께 누르면 키, 우선 순위를 가져야한다 마지막으로 누른 키와있을 때 그 전에는 "억제 된"(입력 없음) 키가 있어야합니다.우선 순위 - 스크립트를 게임 기본적으로

예를 들면 : 당신이 키를 누르면 게임으로, 캐릭터가 왼쪽으로 이동하고 D를 누를 ​​때, 그는 오른쪽으로 이동합니다. 두 개의 키를 함께 누르면 문자가 멈 춥니 다. 이제 여기 일은 내가 같은 시간에 두 키를 잡고있어, 비록 그를 내가 마지막으로 누른 키에 따라, 이동 계속하려면, 내가 문자를 중지하지 않을 것입니다.

나는 이것이 사소한 일이 될 것이라고 생각했지만, 실제로 이것을 구현하는 법을 배우려는 시도를 한 후에 약간 압도 당했다. (나는 멍청이 다, 미안하다 : C), 그래서 나는 여기에 대한 도움을 찾고자했다. AHK에서이를 수행하는 방법 또는 키 입력을 직접 변경하는 스크립팅 언어를 쉽게 컴파일하는 방법. 나는 게임을 수정하거나 만들려하지 않으므로 그 키를 다시 매핑하는 스크립트로 충분합니다!

+0

내가 추가하는 것을 잊었다. 아마 조금 복잡해, 나는 모른다. – Silveirous

답변

2

AutoHotkey를 예, 당신의 다음 "A와 D, 특히"질문 :

for k,v in StrSplit("ad") 
    Hotkey, % "~$" v,Silveirous 

Silveirous: 
t:=SubStr(A_PriorHotkey,3) 
if GetKeyState(t) and (A_ThisHotkey!=A_PriorHotkey) 
    Send {%t% up} 
return 

문서 :

for k,v in, StrSplit(), Hotkey,,,, "~$", SubStr(), A_Prior/ThisHotkey, if, GetKeyState(), t:=... and ... != , Send {%t% up}


편집 :

또 다른 해결책, 영업 이익의 편집/주석에 설명 된대로 작동하는 제작 :

#If GetKeyState("d","p") 
~a::Send {d up} 
~a up::Send {d down} 
#If GetKeyState("a","p") 
~d::Send {a up} 
~d up::Send {a down} 
#If 

하는 #Ifif (expression) 사용의 경우의 차이를 염두해야합니다. 이 같은 2 키를 무기한으로 작업 할 필요가있다, 그래서 누르면 A와 D는 등 다음을 해제하고 D를 오버라이드 (override) 다시 누르면, 그리고 D 오버라이드 A를 만든다 :

+0

밥, 정말 고마워요! 나는 대본을 시험해 보았지만 효과가 있었지만, 내가 가진 것처럼 문제를 설명하지 못했다고 생각한다. 내가 함께 두 개의 키를 누르면 그것을 할 의도 무엇 무엇을했지만 키의 순서는 D를 해제하고 다시 등등 등등 작동하지 않을 것입니다, 단지 첫 번째 조합을 누릅니다 함께 A와 D처럼 눌러 키를 누른 상태에서 처음 A와 D를 누른다. 어떻게 극복 할 수 있을까? – Silveirous

+0

또한이 문서는 사이트에서 자동화 되었습니까, 아니면 모든 내용을 링크 했습니까? : P 어느 쪽이든, 정말 고마워! 나는이 코드를 이해하려고 노력할 것이지만, 아마 시간이 걸릴 것이다. – Silveirous

+0

@Silveirous 편집 – Bob