Das entpuppt sich ja als immer komplexer hier Dachte eigentlich, dass eine Zahl zeichnen und bewegen kein großer Akt ist, so kann man sich täuschen :P
Noch kurz eine allgemeine Frage: In GubiDs Video Tutorials benutzt er immer eine "Find in All Sections"-Suchfunktion, die ich äußerst praktisch finde, wie kann ich die denn öffnen?
@-KD-
Danke für den Code, das ist schonmal super! Jetzt muss ich mich nur noch durch den ganzen Brocken durchknabbern Die Game_DamageDisplay - Klasse von dir verstehe ich schon, vorallem den Trick mit der progress - Methode finde ich sehr elegant, dass hätte ich auch wesentlich umständlicher gelöst
Was du jedoch in der Game_Screen Methode treibst ist mir noch zu großen Teilen schleierhaft.
Deine Grundidee ist doch alle DamageDisplay-"Objekte" in ein Array zu schreiben um das von dir angesprochene Problem zu vermeiden:
Zitat von -KD-
Wenn du den Code hingegen mehrfach ausführst, wird die Variable neu zugewiesen und der alte Sprite wird vom GarbageCollector gelöscht. Darum verschwindet die Grafik nach wenigen Sekunden.
...
1) Woher kommt denn @damage_displays, die wird in deinem Code doch garnicht angelegt, oder täusche ich mich da? Außerdem ist der " ||= "-Operator den du hier bentuzt ist eine Veroderung von [] (einem leeren Array (?)) mit sich selbst. Bewirkt das etwas? Eine Veroderung mit Null verändert doch nichts. Wenn das Ergebnis vorher 1 oder 0 war kommt doch entsprechend 1 oder 0 wieder raus. 2) Die zweite Zeile räumt alle fertigen display aus dem Array. 3) Aber was macht die dritte Zeile Code hier? Ist das eine Methode? Wo ist die denn definiert? Oder ist das die Variable displays, aber du machst ja nichts damit, oder?!
update-methode: 4) Über update_damage_displays rufst du doch einfach die alte update-Methode aus Game_Screen auf, stimmts? (verstehe die alias Funktion noch nicht so recht, die bentutzt man ja um quasi die alte Methode zu erhalten und neue Befehle hinzu zu fügen, weil man hier update nicht komplett überschreiben will) 5) Jetzt bin ich wieder verwirrt weil doch " @sprite_damage_displays ||= []" nichts tut, @sprite_damage_displays ist ja einfach leer? 6) "@sprite_damage_displays[displays.size..-1].each {|display| display.dispose}" Druchläuft das @sprite_damage_displays-Array und führt auf alle display die dispose Methode aus. 7) Was passiert denn hier? Also der Sinn dahinter ist, entweder einen neuen Spirte zu zeichnen oder einen bestehenden zu refreshen, aber die Syntax macht mich fertig.
Ich hoffe ich geh dir mit meiner Fragerei nicht zu sehr auf die Nerven Würds halt gern verstehen.