Tag,
in Anlehnung an meine Gedanken für das KS meines Projekts (Zum Thread (http://www.rpgvx.net/index.php?topic=5735.0)) habe ich jetzt angefangen, mich vermehrt mit RGSS2 auseinanderzusetzen.
So weit, so gut.
Das Prinzip habe ich verstanden, bereits fertige Scripte lesen und großteils verstehen klappt auch und wenn ich Hilfe zu den einzelnen Elementen und deren Bezeichnungen brauche hab ich eine gute Seite, wo sich alles auflöst.
Also dachte sich der Hacki: "Gut, fangen wir doch mal mit einer simplen Übung an, die ich sowieso andauernd in meinem KS brauchen werde - Fenster!"
Also suchte Hacki nach Lösungen, wie man ein Fenster erstellt und fand auch alsbald eine. Dumm nur, dass er bis jetzt noch nicht rausgefunden hat, ob er den dispose- oder close-Befehl braucht und wie man andere Sachen macht, obwohl wenigstens die rudimentärsten Sachen schon mal klappen - Text anzeigen und Windowskin. Hooray. Bringt mir nur nichts, weil ich jetzt seit geschlagenen fünf Stunden herumwurschtel, experimentiere und google und bisher auf keine zufriedenstellende Lösung gestoßen bin.
Vielleicht denk ich auch einfach nur zu kompliziert und die Lösung ist viel simpler.
Und da ich denke, dass ich mehr als einmal nach Hilfe fragen werde, erlaubt sich meine Dreistigkeit mit dem gerade einmal fünften Post schon einen eigenen Thread für sich zu beanspruchen. Ich wäre euch dankbar, wenn ihr mir helfen könnt und eventuell belohne ich euch mit einem neuem Kampfsystem.
Also - Zur Frage Nummer 1:
Wie gesagt - Die Sache mit dem Fenster. Ich habe trotz mehrerer Tutorials nicht ganz verstanden, wozu refresh gut ist. Eine Schleife hätte meiner Meinung nach den gleichen Effekt und könnte eventuell auch den Befehl zum Schließen des Fensters beinhalten (Pseudocode: Do until OK pressed).
Und damit sind wir auch schon beim zweiten Punkt: Das schließen des Fensters. Ich erwähnte es bereits: Ich krieg das nicht gebacken! Weder Close noch Dispose bieten eine zufriedenstellende Lösung.
Beispielscript - Größe und Name spielen keine Rolle.
@Fenster_das_nicht_zugeht = Window_Base.new(0, 0, 544, 416)
if Input.trigger?(Input::X)
Fenster_das_nicht_zugeht.close
end
Bei diesem Script habe ich vom Titelbild an ein Fenster, was mich aber nicht stört. Viel mehr stört mich, dass ich auf X drücken kann, bis ich schwarz werde und nichts passiert. Allerdings - Und das sehe ich im Hinblick auf das, was ich als KS plane nicht so ganz positiv - kann man während dieses Fenster geöffnet ist, handeln - Derzeit also auf der Map rumlaufen. Und schließen tuts sich da auch nicht. Das sollte nicht so sein. Das Spiel sollte während des Fensters mehr oder minder eingefroren sein.
Ich möchte keine komplett fertigen Scripts haben - Das bringt mir nichts. Ich will dieses Teil selbst hinbekommen und brauche lediglich Denkanstöße oder Richtigstellungen meines Scripts, eventuelle Verbesserungen, Sachen zum Hinzufügen, etc., damit der Lerneffekt da ist und ich in Zukunft auch weiß, wie ich was machen muss, um keine Probleme mehr zu haben.
MfG
Hacki
Willkommen im Forum,
Um dein Problem mit dem Window welches vom Title an da ist anzusprechen... Hast du diese Befehle in einer methode und Class definiert?Es verhällt sich im Maker nämlich so, dass die Scriptzeilen, welche in keiner Klasse stehen, werden von Beginn an EINMAL ausgeführt... Stehen sie in einer Klasse, werden sie einmal ausgeführt, sobald die Klasse aufgerufen wird... Nun musst du deine Zeilen in einer Methode innerhalb einer Klasse definieren, die Klasse aufrufen, und dann ie Methode der Klasse ausführen... das geschiet dann so:
class Meine_Klasse
def initialize
window
end
end
def inizialize inizialisiert die Klasse, dh. diese Methode wird ausgeführt, sobald (wie hier) blabla = Meine_Klasse.new ausgeführt wird... .new greift also auf die initialize methode zu.
Das nichts passiert, wenn du etwas drückst, liegt daran, dass du deine Class updaten musst... Nen Window updatest du normalerweise innerhalb einer der Scene-Klassen... Da befindet sich immer eine Update Methode... In der start-Methode kannst du dein Window inizialisieren, und in der Update Methode updaten ;)
z.b. window = Window.new
und dann unten in update
window.update
... nun musst du in deiner Window Klasse eine Methode def update erstellen, diese wird dann permanent ausgeführt und ich glaube jeden frame geupdatet, also neu ausgeführt...
hoffe konnte dir helfen...
mfg Hamster