Ich hätte auch mal eine kurze Frage:
Wenn ich viele Abfragen habe, was ist weniger rechenintensiv? Wenn ich das Ganze mittels :ELSE CASE ineinander verschachtel oder wenn ich die ganzen Forks einfach hintereinander weg platziere?
...
Beim Vx hab ich die Erfahrung das das Elsecase verfahren Resourcen fressender ist.
Wenn du eine verschachtelung mit Else Case hast fragt er nicht nur ab ob es zutrifft, sondern muss jedesmal noch abfragen was passiert wenns nicht zutrifft.
Lässt man das Else weg, so muss der Maker nur abfragen obs Zutrifft:Ja/Nein aber kein extra Else. Mit Else wäre Resourcenfressender wenn nicht der erste Fork gleich zutrifft.
Damit der Maker nicht 999 Forks durchgehen muss wenn die Erste zutrifft, kann man folgendermaßen lösen:
1.Per Label, ganz unter alle Forks machst du ein Label, nennen wir es "Hier weiter Rechnen" nun kopierst du in jede Fork nur noch unter den Code im Fork ein Jump to Label "Hier weiter Rechnen".
Somit würden nicht immer alle Forks abgefragt werden, wenn der erste zutrifft.
2.Oder man macht nach den Forks falls sowieso kein Eventcode mehr folgt , den Befehl End Event Prozessing (Nicht Erase Event).
Mit End Event Prozessing springt die Codeabfrage zum ende des Events. Bei Paralellen Events fängt die abfrage also erneut an.
3. Benutzte den Elsecase einer Fork nur dann wenn du ihn wirklich brauchst bei deiner Schaltung.
Hoffe das hilft irgendwie.
Am besten könnte man dir helfen wenn man wüsste was du umsetzen willst.
bzw. eben
Ich muss eine einzelne Variable abfragen und abhängig vom Wert eine Aktion ausführen. Welche das ist sei hier mal dahingestellt, da ich die Frage allgemein meine. Abfragen via Pointer sind allerdings natürlich nicht möglich, da die Aktionen keine Variablen als Referenzwert zulassen. (bspw. Tint Screen, Show Picture (ohne Patch jedenfalls), etc.)
Das Script an dem ich sitze (eine überarbeitete Version des Textsystem aus meinem Szenencontest-Projekt) braucht ca. 99 solcher Abfragen und diese müssen schnell und teilweise parallel zu ein paar anderen Events laufen. Letzteres lässt sich nicht vermeiden, da eben parallel zur Textanzeige auch andere Events laufen. Da der Spaß möglichst auch auf meinem Netbook noch flüssig sein soll, versuche ich nun, die Stellen, die in meinen Augen Knackpunkte sind, direkt zu optimieren soweit dies der Maker zulässt.
Btw, dein Vorschlag unter Punkt 1 wäre doch im Prinzip das selbe wie die Else-Case-Variante? Oder geht der Maker selbst dann den Rattenschwanz durch, wenn bei "If V[1]=3" tatsächlich 3 rauskommt? Else Case stellt ja soweit ich das bisher verstanden habe genau das sicher: Dass der Maker eben nicht alles durchgeht, sondern nur seine Abfragen macht, wenn eben der "'ansonsten'-Fall" eingetroffen ist und andernfalls zum passenden :END CASE springt, also das, was bei dir das Label bewirkt.
@Magicmaker:
Also die Elsecase-Variante, wenn ich das richtig verstehe? Gracias, das bestätigt meine Vermutung. (:
Sonst würde der Maker auch sehr paradox arbeiten bzw. die ganze elsecase-Funktion ad absurdum führen...
Elsecase Pyramide sind sollte man besser vermeiden, weil's schnell unübersichtlich wird, und es ist kostet Generel mehr leistung, als wenn man die branches nach einander machen, kombiniert mit entweder einem label oder end event processing (je nach zweck), am ende jeden Fork zu machen.
z.b.
fork v = 1
blablah
jump to label 1
end
fork v = 2
blabla
jump to label 1
end
...
fork v = 99
blabla
jump to label 1
end
label 1
blabla (weiterem code)
Besser, wäre es möglicherweise wenn du aber statt so eine reihe von branches machst, einfach nur ein map event mit 99 seiten machst, gibst den event id in einem variabel rein, und lässt den anderen variabel entscheiden welcher event page ausgeführt werden soll. Ins besondere wenn die werte des variabel von 1 bis 99 gehen, sollte dies um einiges besser sein als ein grosses haufen von branches zu haben
Bloß in diesem speziellen Fall hab ich ein Common Event, ich könnte also maximal das ganze Messagesystem in MapEvents packen.
Wobei, wenn ich es schaffe, das auf ein Event zu Begrenzen... hrm...
Danke auf jeden Fall, der Ansatz hilft mir schon weiter. (:
Ich bin trotzdem neugierig.
Was genau wird mit 99 Forks bestimmt/gemacht/ausgelöst? Ohne diese Info kann man nicht sagen ob du es unnötig kompliziert angehst.
Vieleicht lässt sich das anders machen oder irgendwie aufteilen.
@Kazesui
Danke für das Beispiel^^ nicht das sich noch falsche Gerüchte als Eventweissheiten einbürgern.
Gruß Bex
Ich hoffe, es kann mir jemand helfen. Ich hatte vorher ein kleines Netbook. Darunter liefen die spiele des RPG Maker 2000/2003 wunderbar. Jetzt habe ich einen neuen Laptop und der will mir den Maker unter 64 Bit nicht installieren, weil das Programm unter 32 Bit läuft. Auch die Spiele kann ich dann so nicht spielen. Weiß einer, einen Rat, wie ich den RPG Maker 2000 unter 64 Bit installieren und zum laufen bringen kann?
--
Behandele mich so, wie du es auch von mir Erwartest
Ich hoffe, es kann mir jemand helfen. Ich hatte vorher ein kleines Netbook. Darunter liefen die spiele des RPG Maker 2000/2003 wunderbar. Jetzt habe ich einen neuen Laptop und der will mir den Maker unter 64 Bit nicht installieren, weil das Programm unter 32 Bit läuft. Auch die Spiele kann ich dann so nicht spielen. Weiß einer, einen Rat, wie ich den RPG Maker 2000 unter 64 Bit installieren und zum laufen bringen kann?
...
Sehr merkwürdig, Diablo 2 lief bspw. unter Win7 64-Bit tadellos.
@Itaju: Cherrys Hyper Patcher oder ein gewöhnlicher IPS-Patcher würd ich spontan mal sagen, die Installations-Reihenfolge spielt allerdings auch eine Rolle.
--
Elektra Kingdom v.4.12 Vollversion in der Mache, Zeitlimit bis zum 31.12.2024 *click Offizieller Blog zum Spiel News, Links, Screenshots, etc. *click Tanalin Integer Scaler Fullscreen Tool für RPG Maker 2000 / 2003 Spiele*click VirtualMIDISynth Fix für kaputte MIDI Musik*click Windows Photo Viewer Fix für unscharfe Windows Fotoanzeige *click RPG Maker Ultimate (rpg2009) von Cherry: 1 Million Switches/Variablen, 125 Kästchen für BattleAnimationen, beliebige Picture-Größen importieren *click für DL & *click für 100.000 Pictures RPG Maker 2000 / 2003 (Steam) Korrektes Vollbild , Performance+ & Ultimate *click
Gibt es eine genauere Abfrage für eine Positionsabfrage wenn man z.Bsp. einen gegensatand auffängt als die X,Y Positionen abzufragen oder arbeitet man dann besser mit der Bildauschnittsabfrage?