PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Leistengrafik und Text per RGSS



BDraw
27.09.2007, 17:43
Bonjour,

ich werkle momentan an einem Menü, allerdings auf die "altbewährte" Methode: Events.
Jetzt will ich aber eine HP-Leiste einbauen. Die Grafik selbst ist 1x8 Px groß, was generell ja kein Problem ist, da man ja beim XP auch nur in die Länge oder Breite vergrößern kann. Würde ich aber nun den traditionellen Weg gehen bräuchte ich 142 Abfragen (141 Px ist die Leiste bei 100% der HP breit + eine Abfrage falls das Ganze bei 0% ist). Das wäre nun aber ETWAS viel aufwand.

Könnte man das nicht mit dem Script-Befehl lösen? Im groben weiß ich ja wie ich’s machen muss:

V[x] = HeroHP
V[x] * 141
V[x] / HeroMaxHP
V[x] * 100
Show Picture [Leiste]; Zoom (X = V[x], Y = 100%)

Nur wie mach ich das mit RGSS, und zwar so, dass ich das aus nem Event heraus starten kann? Und wie bekomme ich die Grafik wieder gelöscht?
142 Forks wären etwas SEHR viel Aufwand, zumal ich das 5 mal machen muss, plus 5 mal für MP und 5 mal für Exp. Und insgesamt an die ~2130 Forks zu machen mit eigentlich immer dem selben Inhalt zu machen... Err... *hust*

Würde mich über eine schnelle Antwort SEHR freuen.
(Nett wäre auch wenn man mir sagen könnte wie ich Text aus einem Event heraus darstelle... Würde nem menge Charsets und Variablen ersparen bei der HP-Anzeige in Zahlen... Und dem Itemmenü... Und dem Statusmenü... xO)

EDIT:
http://upload.npcfighter.de/files/36/188Men%FCVorlage.png
Es geht insgesamt um die drei Leisten da oben. Bis auf die und die Zahlen bei Lv und TP und den Namen (und Kurzhilfe oben und die Ortsanzeige unten...) ist auch schon alles eingebaut - bis auf die einzelnen Unterpunkte, versteht sich. xO
Und ja, absolut alles auf dem Screen ist selfmade. Bis auf die Schriftart. .___.
Und ja, das da ist ein Testscreen ausm Graphik-Programm. .___.

The_Burrito
04.10.2007, 21:18
Das beantwortet zwar vermutlich deine Frage nicht, aber dein Ansatz ist mMn komplett verkehrt.
RGSS ist nicht einfach eine andere Form Events zu schreiben. Gleichfalls eignen sich Events nicht wirklich (auch wenn sie durch Scriplets "aufgewertet" werden) um Menüs zu erstellen. Das macht man am besten komplett mit RGSS im Script Editor. Das ist zwar vermutlich mit einiger Einarbeitungszeit verbunden, zahlt sich aber hundertfach aus.

MagicMagor
04.10.2007, 21:47
Ich muss da Burrito zustimmen. Die Punkte, wo du hier RGSS einsetzen willst sind die maßgeblichen Punkte wo das Menüdesign per Ruby dem per Event überlegen ist (da einfacher), das hast du ja auch schon gemerkt.
Die Verbindung von RGSS und Events ist immer ein wenig problematisch, da man dann Teile des Systems in RGSS hat und Teile in Eventcode, macht die Problemsuche und evt. Erweiterungen nicht gerade einfacher.

Das Erstellen von Menüs in RGSS ist relativ simpel, da wichtige Grundbausteine schon vorliegen und man diese einfach seinen Wünschen anpassen kann. Ein wenig Einarbeitungszeit ist zwar nötig, aber der Zeit- und Nervengewinn bei der Erstellung deines Menüs ist es wert.

Deine Probleme lassen sich nämlich in RGSS wunderbar mit Windows und Sprites lösen, die entsprechende Methoden bieten um Text zu schreiben, oder farbige Rechtecke zu zeichnen, oder sonstwie Bilder anzuzeigen.
Deine Leiste lässt sich dann auch über eine einfache Schleife lösen. Wobei dazu zu sagen ist, eine Breite von 141 Pixeln ist ungünstig. Du kannst nur ganze Pixel zeichnen, wenn du den Wert dann in Prozent angibst sollte deine Breite ein Vielfaches, oder ein leicht teilbares von 100 sein. (50, 100, 150, 200 sind alles gute Werte), so daß man gut ausrechnen kann: Alle X% zeichne Y Pixel. Krumme Werte verkomplizieren das nur übermäßig.

Falls du aber bei der Zweiteilung bleiben willst, kann ich mal gucken ob ich wegen der Leistenproblematik am WE was kleines schreibe (dann aber mit 150 Pixel breite).

-KD-
05.10.2007, 16:06
Bevor sich jemand die Mühe macht: Die Frage wurde im Quartier schon von mir beantwortet. Mein Script ist vielleicht etwas überladen (zumal ich es noch mit einer anderen Anfrage kombiniert hab), funktioniert aber offensichtlich.
Hier (http://forum.rpg2000.4players.de/viewtopic.php?p=1358071#1358071) das Script.