collapse collapse

 Community


 User Info




Willkommen Gast. Bitte einloggen oder registrieren.

 Partnerseiten

rpgvx.net

Das Forum ist offline

Autor Thema: Der Hacki-braucht-nen-Rettungsring-Thread  (Gelesen 1470 mal)

Offline Hackfleischautomat

  • Pfandrocker
  • Event-Jongleur
  • **
  • Beiträge: 58
  • Hat im Maker alles da, ja?
Der Hacki-braucht-nen-Rettungsring-Thread
« am: Februar 04, 2011, 15:48:51 »
Tag,

in Anlehnung an meine Gedanken für das KS meines Projekts (Zum Thread) 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.
Spoiler for Hiden:
@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
« Letzte Änderung: Februar 04, 2011, 15:50:13 von Hackfleischautomat »
"Komm essen wir Opa" - Satzzeichen retten Leben!

Re: Der Hacki-braucht-nen-Rettungsring-Thread

Offline Kasaar

  • Epic Scripter !!
  • Eventmeister
  • ***
  • Beiträge: 305
  • Satanistischer Misantroph... noch Fragen? ]:)
Re: Der Hacki-braucht-nen-Rettungsring-Thread
« Antwort #1 am: Februar 04, 2011, 19:28:31 »
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:

Spoiler for Hiden:
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
Besucht mich auf


Und gebt Kommentare im Blog =)

Re: Der Hacki-braucht-nen-Rettungsring-Thread

Offline Hackfleischautomat

  • Pfandrocker
  • Event-Jongleur
  • **
  • Beiträge: 58
  • Hat im Maker alles da, ja?
Re: Der Hacki-braucht-nen-Rettungsring-Thread
« Antwort #2 am: Februar 04, 2011, 19:37:09 »
Also alles hab ich nicht hundert pro verstanden, aber genau das will ich ja - Keine aufgetischte, hundertprozentige Lösung.

Danke dafür. Ich probiers aus. (Wo ist der Daumen-Hoch-Smiley?)

----------------Zusammengeführt, früher « Antwort #3 am: Heute um 21:26:40 »------------------

Puh, so... Das hat gar nicht so lange gedauert, aber wo ich mir jetzt seit knapp ner Stunde die Zähne ausbeiße:

Ich kann immer noch, während das Fenster offen ist, handeln. Das stört mich. Ich habs fertig bekommen, das Fenster durch ein Event aufploppen zu lassen und mit einem Druck auf X/Esc schließt es sich auch wieder, aber der Charakter kann laufen und im selben Atemzug erscheint das Spielmenü.

Ich hab diverse Sachen ausprobiert. Graphics.freeze, dispose (Ohne zu wissen, obs was mit dem einfrieren von Chars zu tun hat), ich hab am openness rumgespielt - Alles kein Effekt.

Google konnte mir keine Hinweise geben; entweder weil ich mich zu doof ausdrücke oder weil es bei anderen kein Thema ist. Pufftata!

Ich werd erst einmal weiter rumwurschteln - Mich nervt's, dass ich das nicht auf die Reihe kriege, trotzdem wüsste ich gerne, was die Ursache des Problems ist. Und erneut: Bitte keine Lösung, bei der ich mir denke: "Wenn die Lösung so einfach ist, hätt ich gerne mein Problem zurück!" - Also keine Musterlösung


Edit: Mir ist gerade eingefallen, dass ich im Prinzip nur einen Befehl brauche, um das Fenster gezielt per Befehl zu schließen, denn mittlerweile funktioniert mein "neues" Problem auch, wenn ich es per Event aufrufe und wenn ich die close-Funktion auskommentiere.
Dann hab ichs noch mal versucht, die Klassendeklaration sowie dessen End-Zeile auszukommentieren, was darin resultierte, dass sich das Fenster nicht mehr schloss, aber das Menü aufrufbar und der Charakter bewegbar war. Meine Idee ist es, das Spiel komplett, bis auf die Messagebox einzufrieren, bis man einen Knopf drückt.


~Bitte keine Doppelposts. Beiträge zusammengeführt.

MfG, Colo
« Letzte Änderung: Februar 04, 2011, 20:48:09 von Colonios »
"Komm essen wir Opa" - Satzzeichen retten Leben!

Re: Der Hacki-braucht-nen-Rettungsring-Thread

Offline FlipelyFlip

  • Will sein Alter nicht verraten xD
  • Administrator
  • VX-Großmeister
  • ****
  • Beiträge: 884
  • Heyho (=
    • Flips Musik Kariere auf Facebook xD
Re: Der Hacki-braucht-nen-Rettungsring-Thread
« Antwort #3 am: Februar 04, 2011, 20:51:23 »
also wenn ichs recht verstehe, rufst du ein Fenster auf und der Char kann sich trotzdem nebenbei noch bewegen?

Das kannst du eigentlich einfach unterbinden, indem du das Window aus der Window_Base erben lässt und dieses Window eben über ne Scene aufrufst. Am besten guckst du dir dazu etwas die Scene_Menu an, da diese im bezug auf windows aufrufen usw. am besten geeignet ist um selbst drüber zu gucken und zu lernen (=

dürfte dann dein Problem eigentlich gut lösen (=

Auch allgemein ein kleiner Tipp von mir: guck immer etwas auch im Standardzeug nach, das hilft ungemein, vor allem findet man dort oft lösungen und auch ideen für die eigenen kleinen problemchen (=

lg flip

Re: Der Hacki-braucht-nen-Rettungsring-Thread

Offline Hackfleischautomat

  • Pfandrocker
  • Event-Jongleur
  • **
  • Beiträge: 58
  • Hat im Maker alles da, ja?
Re: Der Hacki-braucht-nen-Rettungsring-Thread
« Antwort #4 am: Februar 04, 2011, 20:58:33 »
Auch allgemein ein kleiner Tipp von mir: guck immer etwas auch im Standardzeug nach, das hilft ungemein, vor allem findet man dort oft lösungen und auch ideen für die eigenen kleinen problemchen (=

Genau das mach ich ja, sonst wär ich auch nicht auf die Ideen mit Graphics.Freeze und co gekommen ;) Dummerweise hat das nicht geholfen und um jedes kleine Detail durchzuprobieren bin ich zu ungeduldig. Aber danke für die Antwort - Ich probiers sofort aus.
"Komm essen wir Opa" - Satzzeichen retten Leben!

Re: Der Hacki-braucht-nen-Rettungsring-Thread

Offline FlipelyFlip

  • Will sein Alter nicht verraten xD
  • Administrator
  • VX-Großmeister
  • ****
  • Beiträge: 884
  • Heyho (=
    • Flips Musik Kariere auf Facebook xD
Re: Der Hacki-braucht-nen-Rettungsring-Thread
« Antwort #5 am: Februar 04, 2011, 21:01:27 »
graphic.freeze friert die gesamten Grafiken solange ein, bis diese nicht geupdatet werden (=

Re: Der Hacki-braucht-nen-Rettungsring-Thread

Offline Kasaar

  • Epic Scripter !!
  • Eventmeister
  • ***
  • Beiträge: 305
  • Satanistischer Misantroph... noch Fragen? ]:)
Re: Der Hacki-braucht-nen-Rettungsring-Thread
« Antwort #6 am: Februar 04, 2011, 23:11:33 »
Andere Möglichkeit wäre auch, wenn du eine eigene Klasse benutzt, sollteste iwo $game_player.update stehen, wennu die updatemethode kopiert hast... dieser befehl lässt die bewegung vom player zu... d.h wennu diese löschst, oder in eine Condition packst, kannst du die Spieler Eingabe/Update steuern ;)
Besucht mich auf


Und gebt Kommentare im Blog =)

Re: Der Hacki-braucht-nen-Rettungsring-Thread

Offline Hackfleischautomat

  • Pfandrocker
  • Event-Jongleur
  • **
  • Beiträge: 58
  • Hat im Maker alles da, ja?
Re: Der Hacki-braucht-nen-Rettungsring-Thread
« Antwort #7 am: Februar 05, 2011, 00:48:31 »
Okay, nennt mich doof, aber jetzt geht das Script nicht mehr per Event. Verändert hab ich nichts, bis auf dass ich Vererbung hinzugefügt hab, aber per Scriptcall ($Fenster) geht nichts. Gar nichts, keine Reaktion, als würde das gesamte Script abgehandelt, ohne dass ich auch nur etwas sehe oder dass es gar nicht erst anfängt, verarbeitet zu werden. Klassennamen und dergleichen stimmen alle überein.

Neu: "Window_Base.new" wird nicht mehr akzeptiert. Entweder hab ich irgendwo rumgepfuscht oder irgendwas ist einfach nur schlecht gescripted. Ich kriegs einfach nicht auf die Reihe...


Edit:

Ok, der Fehler war das Dollarzeichen. Gefahr erkannt, Gefahr gebannt. Und weiter gehts!
« Letzte Änderung: Februar 05, 2011, 00:58:29 von Hackfleischautomat »
"Komm essen wir Opa" - Satzzeichen retten Leben!

Re: Der Hacki-braucht-nen-Rettungsring-Thread

Offline Kasaar

  • Epic Scripter !!
  • Eventmeister
  • ***
  • Beiträge: 305
  • Satanistischer Misantroph... noch Fragen? ]:)
Re: Der Hacki-braucht-nen-Rettungsring-Thread
« Antwort #8 am: Februar 05, 2011, 12:16:42 »
Noch ein kleiner Tipp... weil weiß nicht wie du das mit dem Window_Base.new nu gemeint hast... vererbung der Klassen funktioniert im RGSS2 sowie in Ruby allgemein so:
class Meine_Klasse < Window_Base

;)
Besucht mich auf


Und gebt Kommentare im Blog =)

Re: Der Hacki-braucht-nen-Rettungsring-Thread

Offline Hackfleischautomat

  • Pfandrocker
  • Event-Jongleur
  • **
  • Beiträge: 58
  • Hat im Maker alles da, ja?
Re: Der Hacki-braucht-nen-Rettungsring-Thread
« Antwort #9 am: Februar 05, 2011, 13:41:34 »
Weiß ich, weiß ich. So Sachen mit Window_Base usw kann man dann auch mit "super" abkürzen. Ich hab nur das mit der Vererbung wieder weggelassen, als ich gemerkt hab, dass nix mehr geht, was aber gar nichts mit der Vererbung zu tun hatte.

Das Window_Base.new ruft die Fensterfunktion auf, obwohl ich jetzt mittlerweile gemerkt hab, dass da dann nur die Standardwerte (Bis auf die Fenstergröße) genommen werden und ich im Prinzip nix davon hab. Daher werd ich da noch nach etwas anderem suchen. Ich hab mich auch noch weiter schlau gemacht und herausgefunden, dass ich ohne einen entsprechenden Script in der entsprechenden Scene_-Sektion wohl nichts wirklich zum Laufen bekommen werde.

Ich werd jetzt allerdings auch dazu übergehen, schon mal die rudimentären Funktionen in Scene_Battle einzufügen. Weil schließlich soll's n Kampfsystem werden.
"Komm essen wir Opa" - Satzzeichen retten Leben!

 


 Bild des Monats

rooftop party

Views: 3615
By: papilion

 Umfrage

  • Wer soll das BdM gewinnen?
  • Dot Kandidat 1
  • 3 (25%)
  • Dot Kandidat 2
  • 1 (8%)
  • Dot Kandidat 3
  • 2 (16%)
  • Dot Kandidat 4
  • 0 (0%)
  • Dot Kandidat 5
  • 6 (50%)
  • Stimmen insgesamt: 12
  • View Topic

 Schnellsuche





SimplePortal 2.3.3 © 2008-2010, SimplePortal