Also ich blicke durch den Syntax von Ruby nun etwas durch
doch ich habe 2 Fragen :
1,Was heisst def ? Definiert man damit einen Command änlich wie function bei PHP ?
2,Wie öffne ich ne Message Bow und wie bestimme ich ihre Position und Grösser ?
"def" leitet in der Tat eine Funktion ein. Da Ruby voll objekt-orientiert ist, wirst du damit meistens Methoden deklarieren.
Zum zweiten, du erstellst ein Objekt, der entsprechenden Klasse. Du kannst das Nachrichtenfenster vom XP nehmen (Window_Message), oder dir eine eigene Klasse dafür schreiben..
in der script leiste links siehtst du mehrere klassen namens "Window_namexx"
jedes dieser scripts steht für ein jeweiliges fenster...
z.b. das gold anzeigen fenster...
oder die messagebox .... oder das hauptmenü!
wenn du ein eigenes fenster machen willst dann gugg dir am besten erstmal den aufbau eines solchen
fensters an und erstell ein neues script! oder bearbeite ein altes
wenn du jetzt während dem spiel das fenster anzeigen möchtest
benutzt du den "script aufrufen befehl" und gibst: Scriptname.new ein
dann öffnet sich dein fenster^^
evtl mit parameterübergabe Scriptname.new("Hallo!")
wobei in dem anzeigen script eine "variable" (in dem fall ein string)
angegeben werden muss worin der parameter abgespeichert werden kann!
z.b.
class Scriptname
#Dein Fenster
def initialize(satz)
# der string wird hier in die "variable" satz gespeichert!
# welche zur weiteren bearbeitung zur verfügung steht!
--
Geändert von eisRegen2k4 (23.02.2005 um 17:04 Uhr)
Ich möchte nur ein Fenster öffnen welches eine Gewisse Grösser hat und an einen bestimmten Punkt ist .Ich kann mir nicht vorstellen das man für diese einfache sache soviel Code brauch da muss es doch einen verbünftigen befehlt geben im sinne von
msbox(Höhe, Breite ,X ,Y ,Inhalt)
wenn man doch 10.000 seiten schreiben muss dann wüsste ich aber gerne mal Warum ?
Da kommt man sich wie in Pascal vor 2000 Code zeilen um ein Fenster zu öffen Delphie 3 Zeilen
Die beiliegenden Skripte sind in der Hinsicht etwas unflexibel (ohne Änderung).
An deiner Stelle würde ich mich erst einmal mit den Grundlagen der Ruby-Syntax beschäftigen, sowie mit den Grundlagen objekt-orientierter Programmierung (Klassen, Objekte, Instanzen, Vererbung etc..).
Die Window_Base Klasse bietet das grundlegende um ein Fenster anzuzeigen. Allerdings enthält sie noch keinen Text. Entweder leitest du dir selber eine Klasse von Window_Base ab und erweiterst sie um die Anzeige von Text (Beispiele wie das geht, steht zB in der Window_message Klasse), oder du änderst die Window_Message Klasse so ab, das du Position, Größe und Inhalt als Parameter übergeben kannst.
Ich würde aber zu ersterem raten, ist sicherer, da die Window_Message Klasse an diversen Stellen (u.A. im Interpreter) benutzt wird, und du dort überall dann leichte Korrekturen vornehmen müsstest.
Um eine Instanz einer Klasse zu bilden, rufst du den Konstruktor dieser Klasse auf und speicherst den Rückgabewert in einer Variable. Über diese Variable kannst du dann auch auf die Felder und Methoden des Objektes zurückgreifen.
Der Konstruktor in Ruby ist "new". Der Konstruktor ruft automatisch die Methode "initialize" der Klasse auf, dabei werden alle Parameter, die an "new" übergeben wurden, an "initialize" weitergereicht. Wenn du einer Variable $ vorranstellst handelt es sich übrigens um eine globale Variable.
So sieht das Erstellen eines Basisfensters aus. Die übergebenen Parameter, sind von links nach rechts, x- und y-Position der linken oberen Ecke des Fensters, die Breite des Fensters und die Höhe des Fensters.
Wenn du eine eigene Klasse "Window_Msg" geschrieben hast, die als weiteren Parameter, den Text entgegennimmt, würde der Aufruf so aussehen:
Um ein Fenster zu schließen, ist es am einfachsten das Objekt freizugeben, dazu gibt es die Methode "dispose"
Für sonstige Fragen, die vor allem die Syntax betreffen (zB. die Bedeutung von @), konsultiere bitte die Dokumentation von Ruby (auf oben verlinkter Seite downloadbar)