GESUCHT: Spezielen Tastenskript
GESUCHT: Spezielen Tastenscript
BELOHNUNG: Creditseintrag (Auf Wunsch)
AUFGABEN:
1.Einen Tastenscript der folgende Buttons A, B, C, X, Y, Z, L, R auf andere Tasten legt.
2.Die Buttons sollen NUR mit den genannten Tasten Funktionieren mit keinen anderen!
3.Man Bewegt den Charakteren NUR mit WASD Tasten nicht mit den Pfeiltasten.

ANMERKUNG VOM AUFTRAGGEBER:
Würde mich freuen wenn jemand meinen Auftrag annehmen würde.
Auch Bitte Melden wenn es gar nicht möglich ist so einen Skript zu erstellen.
PS: Ich habe die Textbox mit Word erstellt weswegen einige Wörter ROT Unterstrichen sind.
Haben aber KEINE andere Bedeutung als das, das sie Word nicht kennt.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »PopelHD« (23. Januar 2009, 03:26)
Benutzerinformationen überspringen
Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.
|
|
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 |
#============================================================================== # ** 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 Input #-------------------------------------------------------------------------- # * 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 A = [Shift] B = [Tab] C = [Enter, Space] X = [Del] Y = [Esc] Z = [Alt] L = [Letters['Q']] R = [Letters['E']] DOWN = [DOWN] UP = [UP] LEFT = [LEFT] RIGHT = [RIGHT] #-------------------------------------------------------------------------- # * 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 heruntergedrückt wurde #-------------------------------------------------------------------------- def self.trigger?(tasten) tasten = tasten.to_a if tasten.is_a?(Fixnum) for taste in tasten y = (@pressed[taste] & MSB == MSB) && (@last[taste] & MSB != MSB) return y if y == true end return false end #-------------------------------------------------------------------------- # * Gibt true zurück, wenn Taste gedrückt gehalten wird #-------------------------------------------------------------------------- def self.press?(tasten) tasten = tasten.to_a if tasten.is_a?(Fixnum) for taste in tasten y = @pressed[taste] & MSB == MSB return y if y == true end return false end #-------------------------------------------------------------------------- # * Gibt true zurück, wenn Taste wiederholt gedrückt gehalten wird #-------------------------------------------------------------------------- def self.repeat?(tasten) tasten = tasten.to_a if tasten.is_a?(Fixnum) for taste in tasten if not key_down?(taste) and press?(taste) @wait += 1 if @wait == 4 @wait = 0 return true end else @wait = 3 end end return false end #-------------------------------------------------------------------------- # * Update #-------------------------------------------------------------------------- @pressed = ' ' * 256 @last = ' ' * 256 def self.update2 @last.replace(@pressed) getkeystate(@pressed) end #-------------------------------------------------------------------------- # * Gibt true zurück, wenn Taste heruntergedrückt wurde #-------------------------------------------------------------------------- def self.key_down?(taste) (@pressed[taste] & MSB == MSB) && (@last[taste] & MSB != MSB) end end #============================================================================== # ** Input #============================================================================== class << Input alias update_rx_keys update def update Input.update2 update_rx_keys end end |
Irgendwo ist da ein Fehler drin, aber ich find ihn nicht :/
Benutzerinformationen überspringen
Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.
Benutzerinformationen überspringen
Motto: Was zählt ist nicht das eigene Leben, sondern es aufs Spiel zusetzen.
|
|
Quellcode |
1 2 3 4 5 6 7 8 9 10 11 |
module Input memo=[UP,DOWN,LEFT,RIGHT] UP=R DOWN=Y LEFT=X RIGHT=Z R=memo[0] Y=memo[1] X=memo[2] Z=memo[3] end |
kA ob das jz funktioniert ^^ probiers einfach mal aus
villeicht kann man die konstanten auch gar nicht neu belegen :/
wenn ned dann versuch es doch mal damit:
|
|
Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
module Input
def self.dir4
if self.press? R #=W
return 8 #Up
elsif self.press? Y #=S
return 2 #Down
elsif self.press? X #=A
return 4 #Left
elsif self.press? Z #=D
return 6 #Right
end
end
end |
Der zweite Code müsste eigendlich funktionieren weil ich dort einfach nur die dir4 methode ersetzt haben.
Der Held sollte nun mit WASD laufen.
Da im Game_Player script die Laufrichtung mit dir4 abgefragt wird.
mfg. Anemone~
Benutzerinformationen überspringen
Motto: Der Beste ist nicht immer der Gewinner, der Gewinner ist immer der Beste!
oder etwa nicht?
Story: 5% 255 Zeilen
Mapping: 0% 1/(200) Maps
Events: 0%
Grafiken: 2%
Musik: 10%
Konzepte: --% 5/-- Konzepte

An Neo-Bahamut
Also bei dem Tastenscript hier meintest du es gibt einen Fehler. Also der einzige "Fehler" ist das WASD nicht gehen ansonsten Fuktioniert alles.
Hab meine Grauen Zellen auch ma Angestrengt und hab einige Methoden Ausprobiert,
leider alle nur mit Negativen oder Gar keinen Erfolg.

Danke trotzdem Neo-Bahamut nun bin ich schon ein Schritt näher an meine "Traumsteuerung"
An Anemone:
Also die erst Methode Funktioniert... aber leider NUR beim Titelbildschirm und im Menü.
Die 2te Methode Funktioniert... leider NUR mit dem Charakteren und nicht beim Titelbildschirm und nicht im Menü.

Hab auch beide Gleichzeitig Aussprobiert: Geht aber auch nich.

Trotzdem Danke Anemone.^^
An Anemone und Neo-Bahamut:
Ihr habt mir sehr bei meinem Problem geholfen deswegen würd ich euch gerne einen Creditseintrag "schenken" also wenn jemand von euch KEINE Creditseintag will soll hier oder mich Persönlich anschreiben. Ihr werdet euren Namen dann am 01.01.2010 bei meinem Game [Soul Hunter] bewundern können.^^
An Alle:
Also mein Problem ist "Fast" gelößt ich brauch nur noch einen WASD Script.
Also Bitte! Antwortet wenn ihr die Antwort parat habt.
Ein Creditseintrag wird 100% (Auf Wunsch) als Belohnung winken.^^
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »PopelHD« (29. Januar 2009, 02:10)
Benutzerinformationen überspringen
Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.
Ich habs nochmal versucht und bin dem Ziel näher gekommen. Das einzige Problem liegt noch bei den Windows, bei denen der Cursor zu schnell weitergeht :/
|
|
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 148 149 150 |
#============================================================================== # ** 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 Input #-------------------------------------------------------------------------- # * 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 DOWN = [Letters['S']] UP = [Letters['W']] LEFT = [Letters['A']] RIGHT = [Letters['D']] A = [Shift] B = [Tab] C = [Enter, Space] X = [Del] Y = [Esc] Z = [Alt] L = [Letters['Q']] R = [Letters['E']] #-------------------------------------------------------------------------- # * WinAPI #-------------------------------------------------------------------------- GetKeyboardState = Win32API.new('user32', 'GetKeyboardState', 'P', 'L') #-------------------------------------------------------------------------- # * most significant bit #-------------------------------------------------------------------------- MSB = 128 @wait = 0 #-------------------------------------------------------------------------- # * Get Key State (Test Pressed) #-------------------------------------------------------------------------- def self.getkeystate(buffer) GetKeyboardState.call(buffer) end #-------------------------------------------------------------------------- # * Gibt true zurück, wenn Taste heruntergedrückt wurde #-------------------------------------------------------------------------- def self.trigger?(tasten) tasten = tasten.to_a if tasten.is_a?(Fixnum) for taste in tasten y = (@pressed[taste] & MSB == MSB) && (@last[taste] & MSB != MSB) return y if y == true end return false end #-------------------------------------------------------------------------- # * Gibt true zurück, wenn Taste gedrückt gehalten wird #-------------------------------------------------------------------------- def self.press?(tasten) tasten = tasten.to_a if tasten.is_a?(Fixnum) for taste in tasten y = @pressed[taste] & MSB == MSB return y if y == true end return false end #-------------------------------------------------------------------------- # * Gibt true zurück, wenn Taste wiederholt gedrückt gehalten wird #-------------------------------------------------------------------------- def self.repeat?(tasten) max_wait = 4 tasten = tasten.to_a if tasten.is_a?(Fixnum) @wait += 1 for taste in tasten if not key_down?(taste) and press?(taste) if @wait == max_wait @wait = 0 return true end else @wait = max_wait-1 end end return false end #-------------------------------------------------------------------------- # * Update #-------------------------------------------------------------------------- @pressed = ' ' * 256 @last = ' ' * 256 def self.update2 @last.replace(@pressed) getkeystate(@pressed) end #-------------------------------------------------------------------------- # * Gibt true zurück, wenn Taste heruntergedrückt wurde #-------------------------------------------------------------------------- def self.key_down?(tasten) tasten = tasten.to_a if tasten.is_a?(Fixnum) for taste in tasten x = (@pressed[taste] & MSB == MSB) && (@last[taste] & MSB != MSB) return x if x == true end return false end end #============================================================================== # ** Input #============================================================================== class << Input alias update_rx_keys update def update Input.update2 update_rx_keys end end |
Benutzerinformationen überspringen
Motto: Was zählt ist nicht das eigene Leben, sondern es aufs Spiel zusetzen.
|
|
Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
module Input
memo=[UP,DOWN,LEFT,RIGHT]
UP=R
DOWN=Y
LEFT=X
RIGHT=Z
R=memo[0]
Y=memo[1]
X=memo[2]
Z=memo[3]
def self.dir4
if self.press? UP
return 8
elsif self.press? DOWN
return 2
elsif self.press? LEFT
return 4
elsif self.press? RIGHT
return 6
end
end
end |
Habe es dieses Mal getestet und es klappt ^^
mfg. Anemone~
An Neo-Bahamut
Hui wie der Flitzt! xD
Das mit dem Cursor stimmt schon und leider kann ich den Charakter noch IMMER nicht mit WASD steuern.
Aber wenn ich deinen Script und den von Anemone kombiniere klapps.^^
Das mit dem Cursor ist schon ein wenig Schade.

Willst du dich noch weiter daran versuchen?
Wenn nicht Schreib einfach! Einen Creditseintrag bekommst du dann aber trotzdem.^^
An Anemone:
Perfekt Funktioniert einfach Perfekt.^^
Vielen Dank Anemone!^^
Natürlich bekommst du wie versprochen einen Creditseintrag in meinem Game Soul Hunter.^^
Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »PopelHD« (29. Januar 2009, 02:18)
drück mal während dem spiel F1!
da lassen sich doch meines wissens alle tasten so verändern, wie du's willst, dazu brauchst du kein script.
Auch wenns ihm warscheinlich egal ist, sollte mmn. Cow einen Eintrag bekommen, da seine Antwort ohne eine Codezeile absolut richtig ist...
Ich will jetzt nichts gegen Anemone oder Neo-Bahamut sagen, aber eigentlich hättest du kein Skript gebraucht ^^
Naja aber wenns läuft dann lass es besser so.
drück mal während dem spiel F1!
da lassen sich doch meines wissens alle tasten so verändern, wie du's willst, dazu brauchst du kein script.
Auch wenns ihm warscheinlich egal ist, sollte mmn. Cow einen Eintrag bekommen, da seine Antwort ohne eine Codezeile absolut richtig ist...
Ich will jetzt nichts gegen Anemone oder Neo-Bahamut sagen, aber eigentlich hättest du kein Skript gebraucht ^^
Man kann NICHT ALLE Tasten nach Herzenslust belegen.
Ich hätte ja nicht gefragt wenns gehen würde oder?
Wenn ihr aber noch immer glaubt es würde gehen, muss ich es euch BEWEISEN.
(Erinnert mich jetzt irgendwie an Ace Attorney xD)
Hier mal ein Screenshot von der angeblichen "ALLES BELEGBAREN F1 TASTE".
-
Seite 1: General

-
Seite 2: Gamepad

-
Seite 3: Keyboard

Damit sind Anemone, Neo-Bahamut und ich "NICHT SCHULDIG!!!". xD
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »PopelHD« (9. Februar 2009, 15:43)
Ähnliche Themen
-
Archiv Spielvorstellungen »-
[Abenteuer] Silent Voice
(15. März 2008, 19:22)
-
Ältere Suchanfragen »-
Char passend zu Battler gesucht
(3. September 2007, 20:26)
-
Maker-Talk »-
Hentai RPG ?
(25. Juni 2007, 16:45)
-
Events & Technik »-
punktesytem oder prämie
(19. Juni 2006, 17:36)
-
Maker-Talk »-
ROMS und RIPS
(13. Mai 2005, 19:33)


