Fragen zur Uhrzeit im Menü
Hallo,
ich bins mal wieder^^
Also zum Problem:
Jeder kennt ja das Fenster "Step Count".
Jetzt möchte ich aber das dort nicht die Schritte sondern die Uhrzeit im Spiel angezeigt wird.
Da ich die Zeit als Variablen im Maker habe,
stellen sich mir die Fragen...
1. Wie kann ich eine Variable mittels Skript anzeigen?
2. Da ich im Maker für die Zeit zwei Variablen erstellt habe(Stunden und Minuten),
müssen diese natürlich im Fenster nebeneinander stehen,
wie mache ich das?
3. Wie kann ich in einem Skript eine Null anzeigen,
wenn die Minuten unter Zehn sind?(Ist sicher was mit if^^)
Wäre sehr froh wenn mir das jemand beantworten würde
Mfg
Full Habit
ich bins mal wieder^^
Also zum Problem:
Jeder kennt ja das Fenster "Step Count".
Jetzt möchte ich aber das dort nicht die Schritte sondern die Uhrzeit im Spiel angezeigt wird.
Da ich die Zeit als Variablen im Maker habe,
stellen sich mir die Fragen...
1. Wie kann ich eine Variable mittels Skript anzeigen?
2. Da ich im Maker für die Zeit zwei Variablen erstellt habe(Stunden und Minuten),
müssen diese natürlich im Fenster nebeneinander stehen,
wie mache ich das?
3. Wie kann ich in einem Skript eine Null anzeigen,
wenn die Minuten unter Zehn sind?(Ist sicher was mit if^^)
Wäre sehr froh wenn mir das jemand beantworten würde

Mfg
Full Habit
-
Habits
Zu laut Musik hören!
Kommt immer zu spät!
Muss immer was in den Händen haben!
Isst immer zu schnell... -
ProjektName: (Noch nicht ganz fest gelegt)
Phase: Planungsphase
Fortschrittsgeschwindigkeit: Schleppend
Motivation: Vorhanden
Fortschritt:
Planung und Story: 72%
Letztes Update: 26.07.2011
Um einen Text zu zeichnen berauchst du in RGSS zunächst:
- einen Sprite, an den du ein anzuzeigendes Bild heften kannst (ein Window geht hierbei genauso, jedoch ist die angezeigte Fläche des Bildes bei einem solchen Fenster durch die Fenstergröße begrenzt)
- eine Bildfläche (Bitmap), auf die du zeichnen kannst
Wenn du nur das Schrittzählerfenster überarbeiten möchtest ist beides ja bereits vorhanden, du müsstest blos die Anweisungen in refresh in der Klasse Window_Step austauschen, es fehlt also nur noch das Malen:
um einen Text auf ein Bitmap zu malen gibt es in RGSS diese Funktion:
Bitmap.draw_text( X, Y, Breite, Höhe, Text, Ausrichtung)
Innerhalb der Window-Klasse kannst du mit
self.contents
auf das Bitmap des Fensters zugreifen.
X gibt den Abstand des Test-Vierecks zum linken Rand der Bildfläche an,
Y entsprechend den zum oberen;
Breite bezeichnet die Breite des Text-Vierecks. Ist der Text zu groß für das Viereck wird er zusammengestaucht bzw. abgeschnitten.
Höhe bezeichnet entsprechend die Höhe des Vierecks.
Für diese Werte können ganze Zahlen eingesetzt werden.
Text gibt den zu malenden Textstring an: Bei festen Texten muss der Text in Anführungsstrichen geschrieben werden. Ist der Text in einer Variable gespeichert muss die Variable ohne Anführungsstriche eingetragen werden.
Auf eine Spiel-Variable kannst du in RGSS über $game_variables[id] zugreifen.
Da diese Variablen normalerweise allerdings keinen Text (String) sondern eine ganze Zahl enthalten muss diese Zahl zunächst in einen entsprechenden String umgewandelt werden: das geschieht mithilfe von .to_s am Ende des Variablennamens (der Inhalt der Variable selbst wird dabei nicht beeinflusst).
Ausrichtung gibt die Ausrichtung des gemalten Text an: dieser Eintrag kann zusammen mit dem davorstehenden Komma ausgelassen werden:
0 / kein Eintrag : der Text wird linksbündig gemalt
1 : der Text wird innerhalb des Vierecks zentriert gemalt
2 : der Text wird innerhalb des Vierecks rechtsbündig gemalt
Um den Inhalt der Variablen 16 in das Schrittfenster zu malen kannst du innerhalb der Klasse also
self.contents.draw_text( 0, 0, 60, 32, $game_variables[16].to_s, 0)
verwenden. Außerhalb der Klasse musst du anstatt self entsprechend den Namen der Variablen angeben in der das zu ändernde Fensterexemplar enthalten ist.
Um den Text an anderer Stelle zu platzieren müsstest du einfach X bzw. Y ändern.
Geht der Text über den Bildrand hinaus wird die Position nicht korrigiert und der Text nicht vollständig gezeichnet.
Du kannst auch mehrere Texte zu einem Text zusammenfügen:
in dem Fall müssen die Texte lediglich mit einem Pluszeichen verbunden werden.
"0" + $game_variables[16].to_s
ergäbe, wenn Variable 16 z.B. 19 beträgt den Text "019".
Wenn du nur in einigen Fällen die 0 haben willst benötigst du - wie schon vermutet - eine Abfrage:
der anzuzeigende Text wird dabei in der Variable text gespeichert und in den Malbefehl eingesetzt.
(Hoffe das war was du gesucht hast)
- einen Sprite, an den du ein anzuzeigendes Bild heften kannst (ein Window geht hierbei genauso, jedoch ist die angezeigte Fläche des Bildes bei einem solchen Fenster durch die Fenstergröße begrenzt)
- eine Bildfläche (Bitmap), auf die du zeichnen kannst
Wenn du nur das Schrittzählerfenster überarbeiten möchtest ist beides ja bereits vorhanden, du müsstest blos die Anweisungen in refresh in der Klasse Window_Step austauschen, es fehlt also nur noch das Malen:
um einen Text auf ein Bitmap zu malen gibt es in RGSS diese Funktion:
Bitmap.draw_text( X, Y, Breite, Höhe, Text, Ausrichtung)
Innerhalb der Window-Klasse kannst du mit
self.contents
auf das Bitmap des Fensters zugreifen.
X gibt den Abstand des Test-Vierecks zum linken Rand der Bildfläche an,
Y entsprechend den zum oberen;
Breite bezeichnet die Breite des Text-Vierecks. Ist der Text zu groß für das Viereck wird er zusammengestaucht bzw. abgeschnitten.
Höhe bezeichnet entsprechend die Höhe des Vierecks.
Für diese Werte können ganze Zahlen eingesetzt werden.
Text gibt den zu malenden Textstring an: Bei festen Texten muss der Text in Anführungsstrichen geschrieben werden. Ist der Text in einer Variable gespeichert muss die Variable ohne Anführungsstriche eingetragen werden.
Auf eine Spiel-Variable kannst du in RGSS über $game_variables[id] zugreifen.
Da diese Variablen normalerweise allerdings keinen Text (String) sondern eine ganze Zahl enthalten muss diese Zahl zunächst in einen entsprechenden String umgewandelt werden: das geschieht mithilfe von .to_s am Ende des Variablennamens (der Inhalt der Variable selbst wird dabei nicht beeinflusst).
Ausrichtung gibt die Ausrichtung des gemalten Text an: dieser Eintrag kann zusammen mit dem davorstehenden Komma ausgelassen werden:
0 / kein Eintrag : der Text wird linksbündig gemalt
1 : der Text wird innerhalb des Vierecks zentriert gemalt
2 : der Text wird innerhalb des Vierecks rechtsbündig gemalt
Um den Inhalt der Variablen 16 in das Schrittfenster zu malen kannst du innerhalb der Klasse also
self.contents.draw_text( 0, 0, 60, 32, $game_variables[16].to_s, 0)
verwenden. Außerhalb der Klasse musst du anstatt self entsprechend den Namen der Variablen angeben in der das zu ändernde Fensterexemplar enthalten ist.
Um den Text an anderer Stelle zu platzieren müsstest du einfach X bzw. Y ändern.
Geht der Text über den Bildrand hinaus wird die Position nicht korrigiert und der Text nicht vollständig gezeichnet.
Du kannst auch mehrere Texte zu einem Text zusammenfügen:
in dem Fall müssen die Texte lediglich mit einem Pluszeichen verbunden werden.
"0" + $game_variables[16].to_s
ergäbe, wenn Variable 16 z.B. 19 beträgt den Text "019".
Wenn du nur in einigen Fällen die 0 haben willst benötigst du - wie schon vermutet - eine Abfrage:
|
|
Ruby Quellcode |
1 2 3 4 5 6 |
if $game_variables[16] < 10 text = "0" + $game_variables[16].to_s else text = $game_variables[16].to_s end self.contents.draw_text( 0, 0, 60, 32, text, 0) |
der anzuzeigende Text wird dabei in der Variable text gespeichert und in den Malbefehl eingesetzt.
(Hoffe das war was du gesucht hast)
Danke, Irrlicht 
Funktioniert wunderbar^^

Funktioniert wunderbar^^
-
Habits
Zu laut Musik hören!
Kommt immer zu spät!
Muss immer was in den Händen haben!
Isst immer zu schnell... -
ProjektName: (Noch nicht ganz fest gelegt)
Phase: Planungsphase
Fortschrittsgeschwindigkeit: Schleppend
Motivation: Vorhanden
Fortschritt:
Planung und Story: 72%
Letztes Update: 26.07.2011
Noch eine kurze Anmerkung: Für führende 0en gibt es in Ruby Format-Strings.
Der Formatstring sieht erstmal etwas kompliziert aus. Das % am Anfang bedeutet: Hier soll irgendein Wert eingetragen werden. Das d am Ende sagt: der Wert ist vom Typ Ganzzahl (frag mich nicht warum d für Ganzzahl steht ^^). Die 2 vor dem d bedeutet: Der Wert soll aus 2 Ziffern bestehen. Und die 0 hinter dem % heißt: Hat der Wert weniger als 2 Stellen, so soll er mit 0en aufgefüllt werden.
Du kannst also statt dem If-Satz auch schreiben
|
|
Ruby Quellcode |
1 2 |
string = "%02d" % 7 #=> ergibt "07" string = "%02d" % 14 #=> ergibt "14" |
Der Formatstring sieht erstmal etwas kompliziert aus. Das % am Anfang bedeutet: Hier soll irgendein Wert eingetragen werden. Das d am Ende sagt: der Wert ist vom Typ Ganzzahl (frag mich nicht warum d für Ganzzahl steht ^^). Die 2 vor dem d bedeutet: Der Wert soll aus 2 Ziffern bestehen. Und die 0 hinter dem % heißt: Hat der Wert weniger als 2 Stellen, so soll er mit 0en aufgefüllt werden.
Du kannst also statt dem If-Satz auch schreiben
|
|
Ruby Quellcode |
1 |
self.contents.draw_text( 0, 0, 60, 32, "%02d" % $game_variables[16]) |
Danke kai^^
Ich habe da noch ein weiters anliegen...
Wie kann ich machen,
das sich die Zeit immer Updatet?
Also das die Zeit immer weiter geht?
Ich habe da noch ein weiters anliegen...
Wie kann ich machen,
das sich die Zeit immer Updatet?
Also das die Zeit immer weiter geht?
-
Habits
Zu laut Musik hören!
Kommt immer zu spät!
Muss immer was in den Händen haben!
Isst immer zu schnell... -
ProjektName: (Noch nicht ganz fest gelegt)
Phase: Planungsphase
Fortschrittsgeschwindigkeit: Schleppend
Motivation: Vorhanden
Fortschritt:
Planung und Story: 72%
Letztes Update: 26.07.2011
Ich nehme mal an, dass du deine Uhrzeit in Makervariablen stehen hast, die von Events hochgezählt werden. Diese Events werden aber während des Menüs nicht weiter ausgeführt. Du müsstest also die Uhrzeit anders hochzählen lassen, z.B. über ein Script. Oder aber du lässt dir die Uhrzeit aus der Anzahl der bereits vergangenen Frames errechnen.
Die Frage ist allerdings, warum die Uhrzeit im Menü überhaupt weiterzählen muss. Normalerweise ist das Menü doch eine Art "Pause-Modus", in dem das Spielgeschehen angehalten wird.
Die Frage ist allerdings, warum die Uhrzeit im Menü überhaupt weiterzählen muss. Normalerweise ist das Menü doch eine Art "Pause-Modus", in dem das Spielgeschehen angehalten wird.
Okay,
ich werde es so machen das die Zeit nicht läuft^^
Mit dem Menu hast du natürlich recht
Nochmal danke für die Hilfe =D
Mfg
Full Habit
ich werde es so machen das die Zeit nicht läuft^^
Mit dem Menu hast du natürlich recht

Nochmal danke für die Hilfe =D
Mfg
Full Habit
-
Habits
Zu laut Musik hören!
Kommt immer zu spät!
Muss immer was in den Händen haben!
Isst immer zu schnell... -
ProjektName: (Noch nicht ganz fest gelegt)
Phase: Planungsphase
Fortschrittsgeschwindigkeit: Schleppend
Motivation: Vorhanden
Fortschritt:
Planung und Story: 72%
Letztes Update: 26.07.2011
Ähnliche Themen
-
RGSS 1 Probleme & Talk »-
RGSSError
(22. Oktober 2010, 22:45)
-
RGSS 1 Probleme & Talk »-
Problem bei eigenem Timer Skript
(14. November 2009, 13:51)
-
RGSS 1 Probleme & Talk »-
Time on Map Skript
(29. Oktober 2008, 13:26)
-
RGSS Archiv »-
einfügen?
(19. Februar 2005, 19:00)
-
RGSS Archiv »-
Menu änderung
(25. Januar 2005, 16:06)

