Dear visitor, welcome to RPG Studio - Make your World real. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.
[RMXP] "Fun-Tasten" - Klavierscript von Mustamakkara
Hey Guest!
Hat es dich auch immer gestört, dass in vielen RPG-Maker-Spielen in so ziemlich jedem Haus ein Klavier steht, man es aber nicht spielen kann? Damit ist jetzt Schluss!
"Fun-Tasten" ermöglicht das Spielen von Klavieren, Cembali und Kirchenorgeln! Navigiere mit den Pfeiltasten auf der Klaviatur und drücke Enter, um einen Ton zu erzeugen!
Features:
Nicht-Features:
Hier eine spielbare Testversion: Mustamakkaras Fun-Tasten v1.0.exe (zum Übertragen ins eigene Projekt werden alle Sounds aus dem SE-Ordner sowie das Picture Klaviatur.png benötigt).
Und hier der Quellcode:
Viel Spaß beim Klimpern
Anmerkung: Dies ist mein erstes Script, also würde ich mich besonders über Feedback freuen, vor allem zu schlechtem Stil, umständlichen Formulierungen und dergleichen.
Danke an schM0ggi für die Hilfe bei der compare?-Methode.
Edit:
Hat es dich auch immer gestört, dass in vielen RPG-Maker-Spielen in so ziemlich jedem Haus ein Klavier steht, man es aber nicht spielen kann? Damit ist jetzt Schluss!
"Fun-Tasten" ermöglicht das Spielen von Klavieren, Cembali und Kirchenorgeln! Navigiere mit den Pfeiltasten auf der Klaviatur und drücke Enter, um einen Ton zu erzeugen!
Features:
- Spielbare Klaviere, Cembali und Kirchenorgeln. Zudem lassen sich sehr einfach andere Instrumente hinzufügen. Warum nicht einen Synthesizer für moderne oder Sci-Fi-Settings?
- Es lassen sich Tonfolgen definieren. Werden diese gespielt, aktiviert sich ein Schalter. Möchtest du einen Geheimgang hinter dem Klavier, der sich nur beim Rondo alla Turca öffnet? Kein Problem! (Eignet sich auch hervorragend für Easter Eggs oder versteckte Achievements.)
- Halte beim Klavier die Shift-Taste gedrückt, um das Sustain-Pedal zu benutzen.
- Optional lässt sich auf dem Notenhalter des Klaviers ein Picture anzeigen. Das können beispielsweise Noten sein, aber Leute lassen alles Mögliche auf Klavieren stehen. Warum nicht ein Liebesbrief, adressiert an die Dame des Hauses?
Nicht-Features:
- Das System erkennt Melodien, aber keinen Rhythmus.
Hier eine spielbare Testversion: Mustamakkaras Fun-Tasten v1.0.exe (zum Übertragen ins eigene Projekt werden alle Sounds aus dem SE-Ordner sowie das Picture Klaviatur.png benötigt).
Und hier der Quellcode:
![]() |
Ruby Source code |
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 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 |
#------------------------------------------------------------------------------- #-------------------------Fun-Tasten v1.0 by Mustamakkara----------------------- # # Darf unter Angabe von Credits sowohl in kommerziellen als auch nichtkommerziellen # Projekten verwendet werden. # Das Script befindet sich zum Download auf www.rpg-studio.org. Darf nicht auf # anderen Seiten hochgeladen werden, sondern es darf ausschließlich auf den # Original-Thread verwiesen werden. #------------------------------------------------------------------------------- class Scene_Piano # Ermöglicht es, ein beliebiges Tasteninstrument zu spielen. Dies gelingt über # ein Call Script: # $scene = Scene_Piano.new(instrument, noten, vergleich) # Die Parameter sind nicht notwendig. # # Beispiele: # # $scene = Scene_Piano.new # # => Öffnet ein Klavier ohne Noten, bei dem die gespielten Noten mit vorher # angegebenen Melodien verglichen werden. # # # $scene = Scene_Piano.new(2, "Fuer Elise", false) # # => Öffnet eine Orgel mit dem Notenblatt zu "Für Elise", bei dem nichts # verglichen wird. # # # Soll das Gespielte mit hinterlegten Tonfolgen verglichen werden, so lassen sich # diese hier festlegen: SONG1 = [13, 15, 17, 18, 20, 20, 22, 22, 22, 22, 20, 18, 18, 18, 18, 17, 17, 15, 15, 15, 15, 13] #AlleMeineEntchen SONG2 = [13, 20, 18, 20, 23, 20] #X-Files # SONG3 = [1, 3, 5, 6, 8, 10, 12, 13, 15, 17, 18, 20, 22, 24, 25] # Alle weißen Tasten. # usw... # Dabei stehen die Zahlen für die Tasten im Klavier von links nach rechts. # 1 => Tiefes C # 2 => Tiefes C# # 3 => Tiefes D # ... # 25 => Hohes C # # Die Sounddateien müssen von 1-25 benannt sein und sich im Ordner # Audio/SE/"Name des Instruments" befinden. # Hält man die SHIFT-Taste gedrückt, wird das Sustain-Pedal aktiviert (das ist # das rechte Pedal am Klavier). Dies ist nur in der Klavier-Einstellung möglich # (Cembali und Orgeln haben kein Sustain-Pedal). # Die Notenblätter müssen sich im Pictures-Ordner befinden und 320x220 px groß # sein. Andere Größen sind prinzipiell möglich, dann muss aber die Position des # Notenblattes in der Methode load_noten angepasst werden. def initialize(instrument = 0, noten = nil, vergleich = true) case instrument when 1 @instrument = "Harpsichord" when 2 @instrument = "Church Organ" # Hier können beliebig viele Instrumente angegeben werden. # Vielleicht ein Akkordeon? else @instrument = "Piano" end @noten = noten @compare = vergleich end #------------------------------------------------------------------------------- #---------------------------Hier fängt das Script an---------------------------- #------------------------------------------------------------------------------- def main #------------------------------------------------------------------------------- #-------------------- Hier könnt ihr Einstellungen anpassen -------------------- #------------------------------------------------------------------------------- @songs = { SONG1 => 2 , SONG2 => 3 } # Welcher gespielte Song aktiviert welchen Switch? @cursor = 13 # Startpunkt der Auswahl (Mittleres C) @chosencolor = Color.new(255, 255, 50) # Farbe der ausgewählten Taste @braun = Color.new(139, 69, 19) # Farbe des Klaviers @dunkelbraun = Color.new(120, 50, 0) # Farbe des Notenständers #------------------------------------------------------------------------------- #-------------------- Ab hier bitte nichts mehr ändern ------------------------- #------------------------------------------------------------------------------- @white_keys = [1, 3, 5, 6, 8, 10, 12, 13, 15, 17, 18, 20, 22, 24, 25] @black_keys = [2, 4, 0 , 7, 9, 11, 0, 14, 16, 0, 19, 21, 23, 0] @played_notes = [] @sprite_black = Sprite.new @sprite_black.bitmap = Bitmap.new(1, 1) @sprite_white = Sprite.new @sprite_white.bitmap = Bitmap.new(1, 1) @sprite_black_top = Sprite.new @sprite_black_top.bitmap = Bitmap.new(1, 1) load_background auswahl Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end $game_map.need_refresh=true Graphics.freeze loesche_grafiken end #------------------------------------------------------------------------------- #--------------------------- Alle benötigten Methoden -------------------------- #------------------------------------------------------------------------------- def update @old_cursor = @cursor sustain_pedal? if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) $scene = Scene_Map.new end if Input.repeat?(Input::RIGHT) @cursor += 1 unless @cursor == 25 end if Input.repeat?(Input::LEFT) @cursor -= 1 unless @cursor == 1 end if Input.trigger?(Input::C) if sustain_pedal? play_note else Audio.se_stop play_note end end refresh end def sustain_pedal? if @instrument == "Piano" if Input.press?(Input::SHIFT) return true else return false end end end def compare_songs @songs.each {|key, value| next if $game_switches[value] == true if @played_notes.compare?(key) $game_switches[value] = true end } end #------------------------------------------------------------------------------- #------------------ Hier werden Grafiken erstellt und geladen ------------------ #------------------------------------------------------------------------------- def load_background @sprite_bg = Sprite.new @sprite_bg.bitmap = Bitmap.new(640, 480) rechteck = @sprite_bg.bitmap.rect @sprite_bg.bitmap.fill_rect(rechteck, @braun) rechteck.x = 145 rechteck.y = 220 rechteck.width = 350 rechteck.height = 12 @sprite_bg.bitmap.fill_rect(rechteck, Color.new(0, 0, 0)) rechteck.x += 1 rechteck.y += 1 rechteck.width -= 2 rechteck.height -= 2 @sprite_bg.bitmap.fill_rect(rechteck, @dunkelbraun) @sprite_klaviatur = Sprite.new @sprite_klaviatur.bitmap = RPG::Cache.picture("Klaviatur") if @noten != nil load_noten end end def load_noten @sprite_noten = Sprite.new @sprite_noten.bitmap = Bitmap.new(640, 480) notenblatt = RPG::Cache.picture(@noten) @sprite_noten.bitmap.blt(160, 20, notenblatt, notenblatt.rect) end def load_white_keys_bottom(index) @sprite_white = Sprite.new @sprite_white.bitmap = Bitmap.new(38, 228) @sprite_white.x = 21 + index * 40 @sprite_white.y = 241 rechteck = @sprite_white.bitmap.rect @sprite_white.bitmap.fill_rect(rechteck, @chosencolor) end def load_black_keys(index) @sprite_black = Sprite.new @sprite_black.bitmap = Bitmap.new (32, 150) @sprite_black.x = 44 + index * 40 @sprite_black.y = 240 rechteck = @sprite_black.bitmap.rect @sprite_black.bitmap.fill_rect(rechteck, @chosencolor) end def load_black_keys_top(index) @sprite_black_top = Sprite.new @sprite_black_top.bitmap = Bitmap.new (32, 150) @sprite_black_top.x = 44 + index * 40 @sprite_black_top.y = 240 rechteck = @sprite_black_top.bitmap.rect @sprite_black_top.bitmap.fill_rect(rechteck, Color.new(0, 0, 0)) end def auswahl @white_keys.each do |element| next if element != @cursor load_white_keys_bottom(@white_keys.index(element)) end @black_keys.each do |element| next if element != @cursor load_black_keys(@black_keys.index(element)) unless element == 0 end a = @cursor + 1 b = @cursor - 1 @black_keys.each do |element| load_black_keys_top(@black_keys.index(element)) if element == a and element != 0 load_black_keys_top(@black_keys.index(element)) if element == b and element != 0 end end def play_note Audio.se_play("Audio/SE/#{@instrument}/" + @cursor.to_s) @played_notes.push(@cursor) compare_songs if @compare == true end def loesche_auswahl if @sprite_black.disposed? == false @sprite_black.dispose @sprite_black.bitmap.dispose end if @sprite_white.disposed? == false @sprite_white.dispose @sprite_white.bitmap.dispose end if @sprite_black_top.disposed? == false @sprite_black_top.dispose @sprite_black_top.bitmap.dispose end end def loesche_noten @sprite_noten.bitmap.clear end def loesche_grafiken loesche_auswahl loesche_noten if @noten != nil @sprite_klaviatur.dispose @sprite_klaviatur.bitmap.dispose @sprite_bg.bitmap.clear end def refresh if @cursor != @old_cursor loesche_auswahl auswahl end end end #------------------------------------------------------------------------------- #-------Methode zum Vergleich von Arrays von schM0ggi und Mustamakkara---------- #------------------------------------------------------------------------------- class Array def compare?(array2) check = array2 & self return false unless check == array2&array2 check = array2[0] self.each_with_index do |e, i| next unless check == e check2 = self.slice(i, array2.size) next unless check2 == array2 return true end return false end end |
highlight to read
Viel Spaß beim Klimpern

Anmerkung: Dies ist mein erstes Script, also würde ich mich besonders über Feedback freuen, vor allem zu schlechtem Stil, umständlichen Formulierungen und dergleichen.
Danke an schM0ggi für die Hilfe bei der compare?-Methode.
Edit:
- Hier eine Variante, die auch mit der VXAce-Engine funktioniert:
Ruby Source code
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 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322
#------------------------------------------------------------------------------- #-------------------------Fun-Tasten v1.0 by Mustamakkara----------------------- # # Darf unter Angabe von Credits sowohl in kommerziellen als auch nichtkommerziellen # Projekten verwendet werden. # Das Script befindet sich zum Download auf www.rpg-studio.org. Darf nicht auf # anderen Seiten hochgeladen werden, sondern es darf ausschließlich auf den # Original-Thread verwiesen werden. #------------------------------------------------------------------------------- class Scene_Piano # Ermöglicht es, ein beliebiges Tasteninstrument zu spielen. Dies gelingt über # ein Call Script: # $scene = Scene_Piano.new(instrument, noten, vergleich) # Die Parameter sind nicht notwendig. # # Beispiele: # # $scene = Scene_Piano.new # # => Öffnet ein Klavier ohne Noten, bei dem die gespielten Noten mit vorher # angegebenen Melodien verglichen werden. # # # $scene = Scene_Piano.new(2, "Fuer Elise", false) # # => Öffnet eine Orgel mit dem Notenblatt zu "Für Elise", bei dem nichts # verglichen wird. # # # Soll das Gespielte mit hinterlegten Tonfolgen verglichen werden, so lassen sich # diese hier festlegen: SONG1 = [13, 15, 17, 18, 20, 20, 22, 22, 22, 22, 20, 18, 18, 18, 18, 17, 17, 15, 15, 15, 15, 13] #AlleMeineEntchen SONG2 = [13, 20, 18, 20, 23, 20] #X-Files # SONG3 = [1, 3, 5, 6, 8, 10, 12, 13, 15, 17, 18, 20, 22, 24, 25] # Alle weißen Tasten. # usw... # Dabei stehen die Zahlen für die Tasten im Klavier von links nach rechts. # 1 => Tiefes C # 2 => Tiefes C# # 3 => Tiefes D # ... # 25 => Hohes C # # Die Sounddateien müssen von 1-25 benannt sein und sich im Ordner # Audio/SE/"Name des Instruments" befinden. # Hält man die SHIFT-Taste gedrückt, wird das Sustain-Pedal aktiviert (das ist # das rechte Pedal am Klavier). Dies ist nur in der Klavier-Einstellung möglich # (Cembali und Orgeln haben kein Sustain-Pedal). # Die Notenblätter müssen sich im Pictures-Ordner befinden und 320x220 px groß # sein. Andere Größen sind prinzipiell möglich, dann muss aber die Position des # Notenblattes in der Methode load_noten angepasst werden. def initialize(instrument = 0, noten = nil, vergleich = true) case instrument when 1 @instrument = "Harpsichord" when 2 @instrument = "Church Organ" # Hier können beliebig viele Instrumente angegeben werden. # Vielleicht ein Akkordeon? else @instrument = "Piano" end @noten = noten @compare = vergleich end #------------------------------------------------------------------------------- #---------------------------Hier fängt das Script an---------------------------- #------------------------------------------------------------------------------- def main #------------------------------------------------------------------------------- #-------------------- Hier könnt ihr Einstellungen anpassen -------------------- #------------------------------------------------------------------------------- @songs = { SONG1 => 2 , SONG2 => 3 } # Welcher gespielte Song aktiviert welchen Switch? @cursor = 13 # Startpunkt der Auswahl (Mittleres C) @chosencolor = Color.new(255, 255, 50) # Farbe der ausgewählten Taste @braun = Color.new(139, 69, 19) # Farbe des Klaviers @dunkelbraun = Color.new(120, 50, 0) # Farbe des Notenständers #------------------------------------------------------------------------------- #-------------------- Ab hier bitte nichts mehr ändern ------------------------- #------------------------------------------------------------------------------- @white_keys = [1, 3, 5, 6, 8, 10, 12, 13, 15, 17, 18, 20, 22, 24, 25] @black_keys = [2, 4, 0 , 7, 9, 11, 0, 14, 16, 0, 19, 21, 23, 0] @played_notes = [] @sprite_black = Sprite.new @sprite_black.bitmap = Bitmap.new(1, 1) @sprite_white = Sprite.new @sprite_white.bitmap = Bitmap.new(1, 1) @sprite_black_top_left = Sprite.new @sprite_black_top_left.bitmap = Bitmap.new(1, 1) @sprite_black_top_right = Sprite.new @sprite_black_top_right.bitmap = Bitmap.new(1, 1) load_background auswahl Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end $game_map.need_refresh=true Graphics.freeze loesche_grafiken end #------------------------------------------------------------------------------- #--------------------------- Alle benötigten Methoden -------------------------- #------------------------------------------------------------------------------- def update @old_cursor = @cursor sustain_pedal? if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) $scene = Scene_Map.new end if Input.repeat?(Input::RIGHT) @cursor += 1 unless @cursor == 25 end if Input.repeat?(Input::LEFT) @cursor -= 1 unless @cursor == 1 end if Input.trigger?(Input::C) if sustain_pedal? play_note else Audio.se_stop play_note end end refresh end def sustain_pedal? if @instrument == "Piano" if Input.press?(Input::SHIFT) return true else return false end end end def compare_songs @songs.each {|key, value| next if $game_switches[value] == true if @played_notes.compare?(key) $game_switches[value] = true end } end #------------------------------------------------------------------------------- #------------------ Hier werden Grafiken erstellt und geladen ------------------ #------------------------------------------------------------------------------- def load_background @sprite_bg = Sprite.new @sprite_bg.bitmap = Bitmap.new(640, 480) rechteck = @sprite_bg.bitmap.rect @sprite_bg.bitmap.fill_rect(rechteck, @braun) rechteck.x = 145 rechteck.y = 220 rechteck.width = 350 rechteck.height = 12 @sprite_bg.bitmap.fill_rect(rechteck, Color.new(0, 0, 0)) rechteck.x += 1 rechteck.y += 1 rechteck.width -= 2 rechteck.height -= 2 @sprite_bg.bitmap.fill_rect(rechteck, @dunkelbraun) @sprite_klaviatur = Sprite.new @sprite_klaviatur.bitmap = RPG::Cache.picture("Klaviatur") if @noten != nil load_noten end end def load_noten @sprite_noten = Sprite.new @sprite_noten.bitmap = Bitmap.new(640, 480) notenblatt = RPG::Cache.picture(@noten) @sprite_noten.bitmap.blt(160, 20, notenblatt, notenblatt.rect) end def load_white_keys_bottom(index) @sprite_white = Sprite.new @sprite_white.bitmap = Bitmap.new(38, 228) @sprite_white.x = 21 + index * 40 @sprite_white.y = 241 rechteck = @sprite_white.bitmap.rect @sprite_white.bitmap.fill_rect(rechteck, @chosencolor) end def load_black_keys(index) @sprite_black = Sprite.new @sprite_black.bitmap = Bitmap.new(32, 150) @sprite_black.x = 44 + index * 40 @sprite_black.y = 240 rechteck = @sprite_black.bitmap.rect @sprite_black.bitmap.fill_rect(rechteck, @chosencolor) end def load_black_keys_top_left(index) new_viewport = Viewport.new(0, 0, 640, 480) new_viewport.z = 10000 @sprite_black_top_left = Sprite.new(new_viewport) @sprite_black_top_left.bitmap = Bitmap.new(32, 150) @sprite_black_top_left.x = 44 + index * 40 @sprite_black_top_left.y = 240 rechteck = @sprite_black_top_left.bitmap.rect @sprite_black_top_left.bitmap.fill_rect(rechteck, Color.new(0, 0, 0)) end def load_black_keys_top_right(index) new_viewport = Viewport.new(0, 0, 640, 480) new_viewport.z = 10000 @sprite_black_top_right = Sprite.new(new_viewport) @sprite_black_top_right.bitmap = Bitmap.new(32, 150) @sprite_black_top_right.x = 44 + index * 40 @sprite_black_top_right.y = 240 rechteck = @sprite_black_top_right.bitmap.rect @sprite_black_top_right.bitmap.fill_rect(rechteck, Color.new(0, 0, 0)) end def auswahl @white_keys.each do |element| next if element != @cursor load_white_keys_bottom(@white_keys.index(element)) end @black_keys.each do |element| next if element != @cursor load_black_keys(@black_keys.index(element)) unless element == 0 end a = @cursor + 1 b = @cursor - 1 @black_keys.each do |element| if element != 0 load_black_keys_top_right(@black_keys.index(element)) if element == a load_black_keys_top_left(@black_keys.index(element)) if element == b end end end def play_note Audio.se_play("Audio/SE/#{@instrument}/" + @cursor.to_s) @played_notes.push(@cursor) compare_songs if @compare == true end def loesche_auswahl if @sprite_black_top_left.disposed? == false @sprite_black_top_left.dispose @sprite_black_top_left.bitmap.dispose end if @sprite_black_top_right.disposed? == false @sprite_black_top_right.dispose @sprite_black_top_right.bitmap.dispose end if @sprite_black.disposed? == false @sprite_black.dispose @sprite_black.bitmap.dispose end if @sprite_white.disposed? == false @sprite_white.dispose @sprite_white.bitmap.dispose end end def loesche_noten @sprite_noten.bitmap.clear end def loesche_grafiken loesche_auswahl loesche_noten if @noten != nil @sprite_klaviatur.dispose @sprite_klaviatur.bitmap.dispose @sprite_bg.bitmap.clear end def refresh if @cursor != @old_cursor loesche_auswahl auswahl end end end #------------------------------------------------------------------------------- #-------Methode zum Vergleich von Arrays von schM0ggi und Mustamakkara---------- #------------------------------------------------------------------------------- class Array def compare?(array2) check = array2 & self return false unless check == array2&array2 check = array2[0] self.each_with_index do |e, i| next unless check == e check2 = self.slice(i, array2.size) next unless check2 == array2 return true end return false end end
highlight to read - Die Klaviatur-Grafik in der Demo hat ein paar verrutschte schwarze Tasten. Hier eine begradigte Version:

This post has been edited 1 times, last edit by "Mustamakkara" (Feb 9th 2020, 2:46pm) with the following reason: Version für XPAce hinzugefügt. Verbesserte Klaviatur-Grafik.
Das ist cool. Das Script sieht schön aus. Für meinen Geschmack würde ich die Sprache der Methodennamen einheitlich halten und auf Englisch bleiben, aber das ist nur mein Geschmack.
Habe jetzt nur die normale Demo ausprobiert und nicht in das Ace-Script geguckt. Was mir bei der Demo aber aufgefallen ist: Kann man nicht nur die 13.ogg benutzen und dann den Pitch hoch und runter drehen, um auf die meisten anderen Tasten zu kommen?
Habe jetzt nur die normale Demo ausprobiert und nicht in das Ace-Script geguckt. Was mir bei der Demo aber aufgefallen ist: Kann man nicht nur die 13.ogg benutzen und dann den Pitch hoch und runter drehen, um auf die meisten anderen Tasten zu kommen?
Quoted from "RGSS Doku"
Audio.se_play(filename[, volume[, pitch]])
Starts SE playback. Sets the file name, volume, and pitch in turn.
Das große Scientia Wiki zur Spielentwicklung 
Was ist das RGSS ? RGSS-Dokumentation auf Sc
Kyoshiros Makerkurs
Musik von Shabraxxx für euch
Guide zu den Audioformaten
Skripte von mir (Auswahl):
Atmungssystem
| Streichholzsystem
| Animiert durch Bücher blättern
Random : Marktsystem für Kardor
| Staterelated Battlergraphic
| Hinweis auf mögliche Aktionen
SelfSwitchExpirationtimer Skript - Gameplayerweiterung für Pilzesammler und Farmspiele
Meine Skripte werden gerade hier gesammelt.

Was ist das RGSS ? RGSS-Dokumentation auf Sc
Kyoshiros Makerkurs

Musik von Shabraxxx für euch

Guide zu den Audioformaten

Skripte von mir (Auswahl):
Atmungssystem






Random : Marktsystem für Kardor








Quoted
Das ist cool. Das Script sieht schön aus.
Danke

Quoted
Kann man nicht nur die 13.ogg benutzen und dann den Pitch hoch und runter drehen, um auf die meisten anderen Tasten zu kommen?
Das war auch mein erster Gedanke. Dagegen sprechen aber einige Dinge:
- Die Pitch-Änderung des Makers ist nicht musikalisch. Vielmehr wird die betreffende Wellenform einfach nur gestaucht oder gestreckt, wodurch sich nicht nur die Tonhöhe, sondern auch die Geschwindigkeit ändert. Somit würde die 25 als verdoppelte 13 viermal so schnell verklingen wie die 1 als halbierte 13.
- Man findet eben nur die meisten anderen Tasten sauber. Die ersten paar Obertöne (also 25, 20 und 18 ) kriegt man noch recht zuverlässig, aber die anderen Töne klingen schon leicht schief.
- Die Nutzerfreundlichkeit fürs Einfügen von Melodien leidet ebenfalls. Es ist schon abstrakt genug, die Zahlen von 1 bis 25 zu verwenden. Stattdessen Werte von 50 bis 200 zu benutzen, ist noch weniger intuitiv.
Quoted
Du kannst die 1x1 Bitmaps weglassen. Ist mir gerade aufgefallen, dass Du die warum auch immer drin hattest
In irgendeinem Entwicklungsstand des Scripts habe ich Fehlermeldungen bekommen, weil ich Bitmaps disposed habe, die noch nicht initialisiert wurden. Stimmt aber, jetzt können sie auch weg



Similar threads
-
Taverne zum philosophischen Phönix »
-
Smalltalk (Jan 11th 2007, 8:09pm)
-
Einsteigerhilfe »
-
Das Grosse F.A.Q. - Alle Anfängerfragen auf einen Blick (Oct 28th 2006, 10:33pm)
-
Taverne zum philosophischen Phönix »
-
Studio-Bashthread (May 12th 2011, 9:53am)
-
Einsteigerhilfe »
-
Tastencodes (Jul 17th 2008, 2:42pm)
-
Einsteigerhilfe »
-
Tasten? (Sep 8th 2007, 10:39am)
