Benutzerinformationen überspringen
Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.
Keyboardskript
Ich brauch ein Keyboardskript, das natürlich so ziemlich alle Tasten verfügbar macht und folgende Funktionen dafür hat:
- Wurde die Taste einmal gedrückt
- Wird die Taste gedrückt gehalten
- Wurde die Taste losgelassen
Ich hab bis jetzt noch kein derartiges Skript gefunden =(
- Wurde die Taste einmal gedrückt
- Wird die Taste gedrückt gehalten
- Wurde die Taste losgelassen
Ich hab bis jetzt noch kein derartiges Skript gefunden =(
Zwei Namen, die dir helfen:
1. Miikku
2. SoundSpawn
Miikku's Script dürfteste als Erstes finden. Wenn jmd. noch andere Tastaturscripte kennt als diese, bitte per PN an mich senden
1. Miikku
2. SoundSpawn
Miikku's Script dürfteste als Erstes finden. Wenn jmd. noch andere Tastaturscripte kennt als diese, bitte per PN an mich senden
-
Werbung -
1plus3
-
Nuuuhminaaah
-
compétences(Dieser Tab ist rein satirisch.)mes compétences
max.
Maps machen
Musik machen
Scripts machen
Story ausdenken
Pixeln und so
Events proggen
-
mes projets-
Silentium
Name: Silentium
Maker: Eigenbau (C++, x86-SSE/AVX-Assembly, Ruby/Lua)
Story
NPCs
Scripts
Ressis
Maps
Gesamt(3+4)% 42 69% 0815 -17.438 103.38% ± 6.3mm²
(Die Tabelle erfüllt lediglich satirische Zwecke.) -
OnyxEine in C++ implementierte, modulare, plattformunabhängige, virtuelle Maschine. Die Test-Version ist bereits halb fertig. Ab dann gibt es vielleicht mehr Infos. Sie soll die auf dem ersten Blick LISP-artige und eigens dafür konstruierte Sprache Obsidian ausführen können. Experimentell wird auch ein Lua-Compiler für Onyx gebaut. Ziel ist eine leistungsfähige, virtuelle Maschine für beliebige Scriptsprachen. Theoretisch gesehen müsste man bloß noch einen kompatiblen Compiler schreiben, der Quellcode jener Sprache in Onyx-Assembly, oder direkt in Onyx-Bytecode übersetzt. Ob die jemand nutzen wird, ist eine andere Frage und nur ein sekundäres... nein, eher tertiäres Ziel dieser VM. Primär dient es mir lediglich dazu, mein Verständnis von Hardware, ISA, und Assembly zu vertiefen, sowie eigene Grenzen auszutesten.
Warnung!
Das Entwickeln einer virtuellen Maschine oder Programmiersprache (im wahnsinnigsten Fall beides) ist eine höchst komplizierte Tätigkeit, aus der viel Frust und Hirnmatsche hervor gehen. Sollte sich dennoch ein ähnlich wahnsinniger finden, der sowas zusammen schustern will, so lege ich ihm/ihr die folgenden Bücher ans Herz:- Compiler - Das Drachenbuch [978-3-8273-7097-6]
Dieses Buch schlachtet ausführlich und leicht verständlich die Grundlagen bis hoch zu den Experten-Techniken des Compilerbaus aus. Es fängt mit der Automaten-Theorie und formalen Sprachen an, arbeitet sich durch Analysetechniken vor, und landet schließlich bei Techniken wie Optimierung und Register-Zuweisung. Das Buch wiegt 3Kg oder 4Kg. Hab's mal gewogen. Ist also nicht gerade die Lektüre für unterwegs.
- Computerarchitektur [3-8273-7016-7]
Hier werden leicht verständlich die wichtigsten Entwicklungen der Rechnerarchitekturen erklärt (Gut, das Buch ist in die Jahre gekommen, aber der Weg zu heute ist ein winziger Schritt, den man sich nach diesem Buch selbst erdenken kann). Hauptbestandteil des Buchs ist eine relativ umfassende Betrachtung der Funktionsweise dreier gänzlich unterschiedlicher, aber dominierender Prozessor-Typen am Beispiel des Pentium II, UltraSPARC II, sowie picoJava. Die meisten Elemente dieses Buchs sind zwar für die Konstruktion einer virtuellen Maschine irrelevant, oder aufgrund der Tatsache, dass die VM Software ist und z.B. Byte-Grenzen hat, sogar zu Leistungseinbußen führen kann, doch ist ein hinreichendes Verständnis dieser Maschinen, mit denen wir arbeiten, äußerst hilfreich für die Überlegungen, wie die VM arbeiten soll.
Es kann sehr hilfreich und inspirierend sein, den Code quelloffener, virtueller Maschinen anderer Sprachen zu überfliegen. Meine Lieblings-Quelle war und ist stets die VM von Lua. Sie ist schlank, verständlich, in C implementiert, und basiert im Gegensatz zu vielen anderen Scriptsprachen-VMs auf einer Register-Maschine statt einer Stapelmaschine. Es wäre natürlich vorteilhaft, die entsprechende Sprache zu verstehen, in der man auch die eigene VM implementieren will. Weiterhin ist es äußerst vorteilhaft, eine leistungsstarke und bequeme Sprache wie C++ zu beherrschen, um die VM zu implementieren. Und bevor irgendwer auf die Idee kommt: Assembly ist NICHT als dominierende Sprache für den Bau einer VM geeignet. Wer die Frage des "Warum?" nicht beantworten kann, sollte zunächst die gewählte Sprache und Assembly hinreichend verstehen lernen, und es dann erneut mit der Frage versuchen. Es lohnt sich dennoch, Assembly zu lernen. Allein schon, um erneut das Verständnis zu vertiefen, zumal ihr mehr oder weniger gezwungen seid, auch für eure VM eine Assembler-Sprache zu entwickeln (Außer natürlich ihr schreibt eure Test-Programme Bit für Bit ;3). - Compiler - Das Drachenbuch [978-3-8273-7097-6]
-
-
enfinJe ne peux pas parler français.
C'est tout ce que Goodle et les restes de cours de français.
das script aus meiner engine ganz oben hat die drei funktionen!
ich würds hier reinstellen, aber ich hock grad am falschen pc.
also einfach im ersten script das module "Key" rauskopieren!
dann kannst du
Key.press?(key)
Key.trigger?(key)
Key.times?(key,times)
die ersten zwei kennst du ja schon!
das dritte ist ziemlich unnütz, ich glaub aber, dass kannst du als losgelassen benutzen, indem du für times einfach 0 einsetzt!
für key kannst du diese 0x42 dinger, wie auch immer sie genannt werden einsetzten
die dindest du im 2 script^^
das ist das script von cybersam, aus dem ich mir die immer abguck!
tut mir leid, dass ich das script jetzt nicht dem ganzen forum geben kann, aber das ist im grunde dasselbe wie cybersam's, nur das ich es mir ein bisschen verändert habe!
cow
ich würds hier reinstellen, aber ich hock grad am falschen pc.
also einfach im ersten script das module "Key" rauskopieren!
dann kannst du
Key.press?(key)
Key.trigger?(key)
Key.times?(key,times)
die ersten zwei kennst du ja schon!
das dritte ist ziemlich unnütz, ich glaub aber, dass kannst du als losgelassen benutzen, indem du für times einfach 0 einsetzt!
für key kannst du diese 0x42 dinger, wie auch immer sie genannt werden einsetzten
die dindest du im 2 script^^
das ist das script von cybersam, aus dem ich mir die immer abguck!
tut mir leid, dass ich das script jetzt nicht dem ganzen forum geben kann, aber das ist im grunde dasselbe wie cybersam's, nur das ich es mir ein bisschen verändert habe!
cow
zum Lesen den Text mit der Maus markieren
Benutzerinformationen überspringen
Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.
@ Evrey: Scuh ich gleich ma^^
@Cow: Soll ichs dann posten?
@Cow: Soll ichs dann posten?
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 |
#====================================== # ¦ Keyboard Script #--------------------------------------------------------------------------- # By: Cybersam # Date: 25/05/05 # Version 4 #====================================== module Kboard #-------------------------------------------------------------------------- $RMouse_BUTTON_L = 0x01 # left mouse button $RMouse_BUTTON_R = 0x02 # right mouse button $RMouse_BUTTON_M = 0x04 # middle mouse button $RMouse_BUTTON_4 = 0x05 # 4th mouse button $RMouse_BUTTON_5 = 0x06 # 5th mouse button #-------------------------------------------------------------------------- $R_Key_BACK = 0x08 # BACKSPACE key $R_Key_TAB = 0x09 # TAB key $R_Key_RETURN = 0x0D # ENTER key $R_Key_SHIFT = 0x10 # SHIFT key $R_Key_CTLR = 0x11 # CTLR key $R_Key_ALT = 0x12 # ALT key $R_Key_PAUSE = 0x13 # PAUSE key $R_Key_CAPITAL = 0x14 # CAPS LOCK key $R_Key_ESCAPE = 0x1B # ESC key $R_Key_SPACE = 0x20 # SPACEBAR $R_Key_PRIOR = 0x21 # PAGE UP key $R_Key_NEXT = 0x22 # PAGE DOWN key $R_Key_END = 0x23 # END key $R_Key_HOME = 0x24 # HOME key $R_Key_LEFT = 0x25 # LEFT ARROW key $R_Key_UP = 0x26 # UP ARROW key $R_Key_RIGHT = 0x27 # RIGHT ARROW key $R_Key_DOWN = 0x28 # DOWN ARROW key $R_Key_SELECT = 0x29 # SELECT key $R_Key_PRINT = 0x2A # PRINT key $R_Key_SNAPSHOT = 0x2C # PRINT SCREEN key $R_Key_INSERT = 0x2D # INS key $R_Key_DELETE = 0x2E # DEL key #-------------------------------------------------------------------------- $R_Key_0 = 0x30 # 0 key $R_Key_1 = 0x31 # 1 key $R_Key_2 = 0x32 # 2 key $R_Key_3 = 0x33 # 3 key $R_Key_4 = 0x34 # 4 key $R_Key_5 = 0x35 # 5 key $R_Key_6 = 0x36 # 6 key $R_Key_7 = 0x37 # 7 key $R_Key_8 = 0x38 # 8 key $R_Key_9 = 0x39 # 9 key #-------------------------------------------------------------------------- $R_Key_A = 0x41 # A key $R_Key_B = 0x42 # B key $R_Key_C = 0x43 # C key $R_Key_D = 0x44 # D key $R_Key_E = 0x45 # E key $R_Key_F = 0x46 # F key $R_Key_G = 0x47 # G key $R_Key_H = 0x48 # H key $R_Key_I = 0x49 # I key $R_Key_J = 0x4A # J key $R_Key_K = 0x4B # K key $R_Key_L = 0x4C # L key $R_Key_M = 0x4D # M key $R_Key_N = 0x4E # N key $R_Key_O = 0x4F # O key $R_Key_P = 0x50 # P key $R_Key_Q = 0x51 # Q key $R_Key_R = 0x52 # R key $R_Key_S = 0x53 # S key $R_Key_T = 0x54 # T key $R_Key_U = 0x55 # U key $R_Key_V = 0x56 # V key $R_Key_W = 0x57 # W key $R_Key_X = 0x58 # X key $R_Key_Y = 0x59 # Y key $R_Key_Z = 0x5A # Z key #-------------------------------------------------------------------------- $R_Key_LWIN = 0x5B # Left Windows key (Microsoft Natural keyboard) $R_Key_RWIN = 0x5C # Right Windows key (Natural keyboard) $R_Key_APPS = 0x5D # Applications key (Natural keyboard) #-------------------------------------------------------------------------- $R_Key_NUMPAD0 = 0x60 # Numeric keypad 0 key $R_Key_NUMPAD1 = 0x61 # Numeric keypad 1 key $R_Key_NUMPAD2 = 0x62 # Numeric keypad 2 key $R_Key_NUMPAD3 = 0x63 # Numeric keypad 3 key $R_Key_NUMPAD4 = 0x64 # Numeric keypad 4 key $R_Key_NUMPAD5 = 0x65 # Numeric keypad 5 key $R_Key_NUMPAD6 = 0x66 # Numeric keypad 6 key $R_Key_NUMPAD7 = 0x67 # Numeric keypad 7 key $R_Key_NUMPAD8 = 0x68 # Numeric keypad 8 key $R_Key_NUMPAD9 = 0x69 # Numeric keypad 9 key $R_Key_MULTIPLY = 0x6A # Multiply key (*) $R_Key_ADD = 0x6B # Add key (+) $R_Key_SEPARATOR = 0x6C # Separator key $R_Key_SUBTRACT = 0x6D # Subtract key (-) $R_Key_DECIMAL = 0x6E # Decimal key $R_Key_DIVIDE = 0x6F # Divide key (/) #-------------------------------------------------------------------------- $R_Key_F1 = 0x70 # F1 key $R_Key_F2 = 0x71 # F2 key $R_Key_F3 = 0x72 # F3 key $R_Key_F4 = 0x73 # F4 key $R_Key_F5 = 0x74 # F5 key $R_Key_F6 = 0x75 # F6 key $R_Key_F7 = 0x76 # F7 key $R_Key_F8 = 0x77 # F8 key $R_Key_F9 = 0x78 # F9 key $R_Key_F10 = 0x79 # F10 key $R_Key_F11 = 0x7A # F11 key $R_Key_F12 = 0x7B # F12 key #-------------------------------------------------------------------------- $R_Key_NUMLOCK = 0x90 # NUM LOCK key $R_Key_SCROLL = 0x91 # SCROLL LOCK key #-------------------------------------------------------------------------- $R_Key_LSHIFT = 0xA0 # Left SHIFT key $R_Key_RSHIFT = 0xA1 # Right SHIFT key $R_Key_LCONTROL = 0xA2 # Left CONTROL key $R_Key_RCONTROL = 0xA3 # Right CONTROL key $R_Key_L_ALT = 0xA4 # Left ALT key $R_Key_R_ALT = 0xA5 # Right ALT key #-------------------------------------------------------------------------- $R_Key_SEP = 0xBC # , key $R_Key_DASH = 0xBD # - key $R_Key_DOTT = 0xBE # . key #-------------------------------------------------------------------------- GetKeyState = Win32API.new("user32","GetAsyncKeyState",['i'],'i') GetKeyboardState = Win32API.new("user32","GetKeyState",['i'],'i') GetSetKeyState = Win32API.new("user32","SetKeyboardState",['i'],'i') #-------------------------------------------------------------------------- module_function #-------------------------------------------------------------------------- def keyb(rkey) if GetKeyState.call(rkey) != 0 return 1 end return 0 end #-------------------------------------------------------------------------- def keyboard(rkey) GetKeyState.call(rkey) & 0x01 == 1 # end #-------------------------------------------------------------------------- def key(rkey, key = 0) GetKeyboardState.call(rkey) & 0x01 == key # end end |
zum Lesen den Text mit der Maus markieren
da is ein keyboard script
edit: zu langsam >.>
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 |
if TasteGedrückt && !variable variable = true #tue etwas wenn erstes mal drücken elsif !TasteGedrückt && variable #tue etwas wenn taste losgelassen wird variable = false elsif TasteGedrückt && variable #tue etwas wenn taste gehalten wird else #tue etwas wenn nix gedrückt wird/wurde end |
Wenn du deine Tastenabfrage so umschreibst, erhältst du das ergebnis, das du wolltest, die Abfrage von allen Möglichkeiten, eine Taste zu drücken^^"
-
Werbung -
1plus3
-
Nuuuhminaaah
-
compétences(Dieser Tab ist rein satirisch.)mes compétences
max.
Maps machen
Musik machen
Scripts machen
Story ausdenken
Pixeln und so
Events proggen
-
mes projets-
Silentium
Name: Silentium
Maker: Eigenbau (C++, x86-SSE/AVX-Assembly, Ruby/Lua)
Story
NPCs
Scripts
Ressis
Maps
Gesamt(3+4)% 42 69% 0815 -17.438 103.38% ± 6.3mm²
(Die Tabelle erfüllt lediglich satirische Zwecke.) -
OnyxEine in C++ implementierte, modulare, plattformunabhängige, virtuelle Maschine. Die Test-Version ist bereits halb fertig. Ab dann gibt es vielleicht mehr Infos. Sie soll die auf dem ersten Blick LISP-artige und eigens dafür konstruierte Sprache Obsidian ausführen können. Experimentell wird auch ein Lua-Compiler für Onyx gebaut. Ziel ist eine leistungsfähige, virtuelle Maschine für beliebige Scriptsprachen. Theoretisch gesehen müsste man bloß noch einen kompatiblen Compiler schreiben, der Quellcode jener Sprache in Onyx-Assembly, oder direkt in Onyx-Bytecode übersetzt. Ob die jemand nutzen wird, ist eine andere Frage und nur ein sekundäres... nein, eher tertiäres Ziel dieser VM. Primär dient es mir lediglich dazu, mein Verständnis von Hardware, ISA, und Assembly zu vertiefen, sowie eigene Grenzen auszutesten.
Warnung!
Das Entwickeln einer virtuellen Maschine oder Programmiersprache (im wahnsinnigsten Fall beides) ist eine höchst komplizierte Tätigkeit, aus der viel Frust und Hirnmatsche hervor gehen. Sollte sich dennoch ein ähnlich wahnsinniger finden, der sowas zusammen schustern will, so lege ich ihm/ihr die folgenden Bücher ans Herz:- Compiler - Das Drachenbuch [978-3-8273-7097-6]
Dieses Buch schlachtet ausführlich und leicht verständlich die Grundlagen bis hoch zu den Experten-Techniken des Compilerbaus aus. Es fängt mit der Automaten-Theorie und formalen Sprachen an, arbeitet sich durch Analysetechniken vor, und landet schließlich bei Techniken wie Optimierung und Register-Zuweisung. Das Buch wiegt 3Kg oder 4Kg. Hab's mal gewogen. Ist also nicht gerade die Lektüre für unterwegs.
- Computerarchitektur [3-8273-7016-7]
Hier werden leicht verständlich die wichtigsten Entwicklungen der Rechnerarchitekturen erklärt (Gut, das Buch ist in die Jahre gekommen, aber der Weg zu heute ist ein winziger Schritt, den man sich nach diesem Buch selbst erdenken kann). Hauptbestandteil des Buchs ist eine relativ umfassende Betrachtung der Funktionsweise dreier gänzlich unterschiedlicher, aber dominierender Prozessor-Typen am Beispiel des Pentium II, UltraSPARC II, sowie picoJava. Die meisten Elemente dieses Buchs sind zwar für die Konstruktion einer virtuellen Maschine irrelevant, oder aufgrund der Tatsache, dass die VM Software ist und z.B. Byte-Grenzen hat, sogar zu Leistungseinbußen führen kann, doch ist ein hinreichendes Verständnis dieser Maschinen, mit denen wir arbeiten, äußerst hilfreich für die Überlegungen, wie die VM arbeiten soll.
Es kann sehr hilfreich und inspirierend sein, den Code quelloffener, virtueller Maschinen anderer Sprachen zu überfliegen. Meine Lieblings-Quelle war und ist stets die VM von Lua. Sie ist schlank, verständlich, in C implementiert, und basiert im Gegensatz zu vielen anderen Scriptsprachen-VMs auf einer Register-Maschine statt einer Stapelmaschine. Es wäre natürlich vorteilhaft, die entsprechende Sprache zu verstehen, in der man auch die eigene VM implementieren will. Weiterhin ist es äußerst vorteilhaft, eine leistungsstarke und bequeme Sprache wie C++ zu beherrschen, um die VM zu implementieren. Und bevor irgendwer auf die Idee kommt: Assembly ist NICHT als dominierende Sprache für den Bau einer VM geeignet. Wer die Frage des "Warum?" nicht beantworten kann, sollte zunächst die gewählte Sprache und Assembly hinreichend verstehen lernen, und es dann erneut mit der Frage versuchen. Es lohnt sich dennoch, Assembly zu lernen. Allein schon, um erneut das Verständnis zu vertiefen, zumal ihr mehr oder weniger gezwungen seid, auch für eure VM eine Assembler-Sprache zu entwickeln (Außer natürlich ihr schreibt eure Test-Programme Bit für Bit ;3). - Compiler - Das Drachenbuch [978-3-8273-7097-6]
-
-
enfinJe ne peux pas parler français.
C'est tout ce que Goodle et les restes de cours de français.
Ich fand Cybersams Script nicht so gut, weil es die Tasten jedes Mal aufs neue abfragt. Ein schönerer Ansatz ist da der von Near Fantastica, der die Tasten einmal pro Frame abfragt und sich merkt. Allerdings funktionierte auch das Script nicht fehlerfrei.
Ich hätte daher noch ein Script anzubieten:
Ich hätte daher noch ein Script anzubieten:
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
#============================================================================== # ** Keyboard Modul von Kai unter Verwendung von Near Fantasticas Keyboard-Script # => Ermöglicht Abfrage von Tasten über den Aufruf # Keyboard.key_down?(Keyboard::Taste) # Keyboard.key_press?(Keyboard::Taste) # Keyboard.key_up?(Keyboard::Taste) # Wobei Taste eine der unten stehenden Konstanten darstellt #============================================================================== module Keyboard #-------------------------------------------------------------------------- # * Konstanten von Near Fantastica #-------------------------------------------------------------------------- Mouse_Left = 1 ; Mouse_Right = 2 Back = 8 ; Tab = 9 Enter = 13 ; Shift = 16 Ctrl = 17 ; Alt = 18 Capslock = 20 ; Esc = 27 Space = 32 ; End = 35 Home = 36 ; Left = 37 Right = 39 Del = 46 ; Collon = 186 Equal = 187 ; Comma = 188 Underscore = 189 ; Dot = 190 Backslash = 191 ; Tilde = 192 Lb = 219 ; Rb = 221 Forwardslash = 220 ; Quote = 222 Numberkeys = ('0'..'9').inject({}) do |h, c| h[c] = c[0]; h end Numberpad = {} ; Numberpad[0] = 45 Numberpad[1] = 35 ; Numberpad[2] = 40 Numberpad[3] = 34 ; Numberpad[4] = 37 Numberpad[5] = 12 ; Numberpad[6] = 39 Numberpad[7] = 36 ; Numberpad[8] = 38 Numberpad[9] = 33 Numpad = {} ; Numpad[0] = 96 Numpad[1] = 97 ; Numpad[2] = 98 Numpad[3] = 99 ; Numpad[4] = 100 Numpad[5] = 101 ; Numpad[6] = 102 Numpad[7] = 103 ; Numpad[8] = 104 Numpad[9] = 105 Letters = ('A'..'Z').inject({}) do |h, c| h[c] = c[0]; h end Fkeys = {} ; Fkeys[1] = 112 Fkeys[2] = 113 ; Fkeys[3] = 114 Fkeys[4] = 115 ; Fkeys[5] = 116 Fkeys[6] = 117 ; Fkeys[7] = 118 Fkeys[8] = 119 ; Fkeys[9] = 120 Fkeys[10] = 121 ; Fkeys[11] = 122 Fkeys[12] = 123 #-------------------------------------------------------------------------- # * WinAPI #-------------------------------------------------------------------------- GetKeyboardState = Win32API.new('user32', 'GetKeyboardState', 'P', 'L') #-------------------------------------------------------------------------- # * most significant bit #-------------------------------------------------------------------------- MSB = 128 #-------------------------------------------------------------------------- # * Get Key State (Test Pressed) #-------------------------------------------------------------------------- def self.getkeystate(buffer) GetKeyboardState.call(buffer) end #-------------------------------------------------------------------------- # * Gibt true zurück, wenn Taste gedrückt und wieder losgelassen wurde #-------------------------------------------------------------------------- def self.key_up?(key) (@last[key] & MSB == MSB) && (@pressed[key] & MSB != MSB) end #-------------------------------------------------------------------------- # * Gibt true zurück, wenn Taste heruntergedrückt wurde #-------------------------------------------------------------------------- def self.key_down?(taste) (@pressed[taste] & MSB == MSB) && (@last[taste] & MSB != MSB) end class << self; alias trigger? key_down?; end #-------------------------------------------------------------------------- # * Gibt true zurück, wenn Taste gedrückt gehalten wird #-------------------------------------------------------------------------- def self.key_press?(taste) @pressed[taste] & MSB == MSB end class << self; alias press? key_press? end #-------------------------------------------------------------------------- # * Gibt true zurück, wenn Taste wiederholt gedrückt gehalten wird #-------------------------------------------------------------------------- def self.repeat?(taste) not key_down(taste) and key_press?(taste) end #-------------------------------------------------------------------------- # * Update #-------------------------------------------------------------------------- @pressed = ' ' * 256 @last = ' ' * 256 def self.update @last.replace(@pressed) getkeystate(@pressed) end end #============================================================================== # ** Input #============================================================================== class << Input alias update_rx_keys update def update Keyboard.update update_rx_keys end end |
Benutzerinformationen überspringen
Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.
Juhu, darauf hab ich gewartet xD
Du hast mir ja auch das tolle Mausskript gemacht^^
Du hast mir ja auch das tolle Mausskript gemacht^^




