Code: |
if Input.press?(Input::B) #instructions end |
Module RMXP a écrit: |
module RMXP C=[Input::C,Input::SPACE,Input::ENTER] |
Code: |
Input.update if Input::RMXP.press?(Input::RMXP::C) #instructions end |
Code: |
module RMXP C=[Input::T,Input::Enter,Input::N_5,Input::N_1] |
Code: |
#==================# #Module Input v0.5# #==================# module Input @trigger_api=Win32API.new("user32","GetAsyncKeyState",['i'],'i') @press_api=Win32API.new("user32","GetKeyState",['i'],'i') #==============================# #initialisation des constantes # #==============================# #Souris MOUSE_LEFT=1;MOUSE_RIGHT=2;MOUSE_CENTER=4 #touches sur les coté BACKSPACE=8#la touche <= TAB=9 ENTER=67 SHIFT=88;CTRL=17;ALT=18 PAUSE=19 LOCK_MAJ=20 ESC=66#ECHAP #espace SPACE=32 #pages PAGE_DOWN=33;PAGE_UP=34;FIN=35;HOME=36 #Directions LEFT=37;UP=38;RIGHT=39;DOWN=40 #autre fonctions PRT_SC=44;INSERT=45;DELETE=46 #Chiffres au dessus AN_0=48;AN_1=49;AN_2=50;AN_3=51;AN_4=52 AN_5=53;AN_6=54;AN_7=55;AN_8=56;AN_9=57 #Alphabet A=88;B=27;C=13;D=68;E=69;F=70;G=71;H=72;I=73;J=74;K=75;L=76;M=77;N=78;O=79 P=80;Q=81;R=82;S=83;T=84;U=85;V=86;W=87;X=65;Y=89;Z=90;WINDOWS=91;MOUSE_MENU=93 #Pavé numérique N_0=96;N_1=97;N_2=98;N_3=99;N_4=100 N_5=101;N_6=102;N_7=103;N_8=104;N_9=105 #operations MULT=106;PLUS=107;MOIN=109;DECI=110;DIVI=111 #Touches Fonction F1=112;F2=113;F3=114;F4=115;F5=116;F6=117 F7=118;F8=119;F9=120;F10=121;F11=122;F12=123 #d'autres fonctions LOCK_NUM=144 SHIFT_LEFT=160;SHIFT_RIGHT=161 CTRL_D=162;CTRL_G=163 ALT_LEFT=164;ALT_GR=165 #D'autres touches DOLLARS=186 EQUAL=187 FLOAT=188 SEMICOLON=190#";" COLON=191#":" PERCENT=192#% ou ù CLOSE_PARENTHESIS=219 MICRO=220# * ou µ CIRCUMFLEX=221#"^" SQUARED=222 EXCLAMATION=223 HIGHER=226#">" ou "<" FN=225 # #module RMXP # module RMXP C=[Input::C,Input::SPACE,Input::ENTER] B=[Input::ESC,Input::N_0,Input::X] A=[Input::SHIFT,Input::Z] X=[Input::X] Y=[Input::S] Z=[Input::D] L=[Input::Q] R=[Input::W] def self.press?(key) @press=Input.get_press for i in key return true if @press.include?(i) end return false end def self.trigger?(key) @trigger=Input.get_trigger for i in key return true if @trigger.include?(i) end return false end def self.repeat?(key) @trigger=Input.get_trigger @press=Input.get_press @press_old=Input.get_press_old for i in key return true if @press.push(i) and @press_old.include?(i) and @trigger.include?(i) end return false end end #=============# #mise a jours # #=============# def self.update @press_old=@press unless @press.nil? just_trigger just_press end def self.get_press return @press end def self.get_trigger return @trigger end def self.get_press_old return @press_old end def self.just_trigger @trigger=[] for key in 0..255 @trigger.push(key) if @trigger_api.call(key) & 0x01 == 1 end end def self.just_press @press=[] for key in 0..255 @press.push(key) unless @press_api.call(key).between?(0, 1) end end def self.press?(key) return true if @press.include?(key) return false end def self.trigger?(key) return true if @trigger.include?(key) return false end def self.repeat?(key) return true if @press.push(key) and @press_old.include?(key) and @trigger.include?(key) return false end def self.dir4 if @press.include?(DOWN) return 2 elsif @press.include?(UP) return 8 elsif @press.include?(RIGHT) return 6 elsif @press.include?(LEFT) return 4 else return 0 end end def self.dir8 if @press.include?(DOWN) if @press.include?(RIGHT) return 9 elsif @press.include?(LEFT) return 1 else return 2 end elsif @press.include?(UP) if @press.include?(RIGHT) return 7 elsif @press.include?(LEFT) return 3 else return 8 end elsif @press.include?(RIGHT) return 6 elsif @press.include?(LEFT) return 4 else return 0 end end end |