Zelda-Klon aufm Maker mit Pixelmovement nix mehr im Wege
...
Es stehen dem mindestens zwei callbacks auf getEventScreen_X und getEventScreen_Y, für jedes Event jeweils immer das Neuzuweisen auf welchem Tile(X/Y) es sich gerade befindet, manuelles Nachbessern des Kamerascrolls (damit das nicht ständig rumzuckt) und ein Setzen einer entsprechend neuen MoveRoute (wegen den Animationsframes) ... im Wege. Darauf spielte ich an.
Edit²:
Es gibt intern nirgends einen Wert, welcher sichert, auf welcher Pixelposition sich ein Event / der Spieler befindet. Lediglich die Koordinaten im Tilesetraster und ein Wert (von 256 Richtung 0), der angibt wie weit sich ein Event in ein Tile hinein bewegt hat. Aus diesem Wert (0..256) und der Bewegungsrichtung (0..7) wird halt die Abweichung in Pixeln errechnet und das spuckt die interne getEventScreen_X/Y-Abfrage aus. Ändern der Bewegungsrichtung und dieses 0..256-Wertes bringt nichts, weil die MoveRoute sich selbst korrigieren will und das Events dann nur auf der Stelle laufen würde.
Das ist was "mit DynRPG ist Fast-Pixelmovement möglich" meint.
Edit:
Oder einfach onDrawEvent entsprechend die Sprites anzeigen/verschieben. Dann hat man aber keinen Zugriff auf bestehende Strukturen und kann auch kein <ChangeVar:EventScreen_X>, Eventkollisionen, MoveRoutes oder anderen default Kram nutzen.
Klar kann man alle Sprites als Pictures zeigen (oder in den Bildpuffer laden; Kazesui's mode 7 plugin macht das afaik und der Maker intern ja sowieso). Dann braucht man aber auch nicht mehr mit Tiles mappen und die Map scrollen. Dann muss halt nur noch eine eigene Struktur für Kollisionsberechnung und Eventtriggern zusammengeschustert werden.
Wo wir grade schon mal hier sind: Hätte jemand zufällig eine Möglichkeit, die Position des blinkenden Cursors in der Textbox zu ändern? Alternativ auch eine Möglichkeit, die ganze Textbox zu verschieben oder sowas. °J°
Gibt irgendwo einen Quickpatch dafür. Wenn es in den nächsten Tagen keiner postet und ich wieder mal an meinen Arbeitsrechner bin, bekommst du es von mir.
Ich hätte mal eine Frage. Es ist ja möglich mit dem Rpg Maker 2003 (ob 2000 auch weißich nicht) nach einem Befehl der das Bild verändert, ein Show Screen zu befehligen und dadurch ändert sich diese Veränderung wie beim Show Screen. Hoffe es ist verständlich erklärt xD
Naja. Auf jeden Fall ist mein Problem, wenn man dass so macht, wird der Bildschirm aber einfrieren (heißt alle Animation und co sind wieder aus) bis der Show Screen abgeschlossen ist. Wäre es möglich eine Alternative mit einem Plugin zu erstellen?
Nimm dir mal ein Char. Mach den Befehl "Change Position" auf den Char (natürlich eine andere Postion, als er gerate steht). Danach auf "Show Screen" drücken. Das sieht etwas aus als ob der sich teleportiert. Und das geht auch mit Chipset soweit ich das mitgekriegt habe. So könnte man Silent Hill ähnliche Umwandlungen machen, allerdings ist während dem "Show Screen"-Befehl wie gesagt dieses Einfrieren. Das muss man irgendwie umgehen wenn möglich.
Da ich in letzter Zeit nach langem wieder den Maker angeworfen habe und ein paar Patches gesucht habe, bin ich zwangläufig auf den DynRPG gestossen. Und ich muss sagen nach anfänglicher skepsis finde ich es ziemlich geil Einzig blöde ist, dass ich nicht wirklich programmieren kann
Nun, ich habe jetzt vieles, aber nicht alles druchgelesen, kann sein das es schon gefragt wurde aber:
Kann man die Filter, die im AnotherFullscreenMode verwendet wurden (Scale2x und hq2x) auch darüber integrieren?
Diese Frage kam bei mir auf, als ich das Testspiel mit dem Mausplugin gestartet habe (über AFM) und der Mauszeiger auf einmal weg war. Habe es zwar mit einem Workaround geschafft, das die Maus an der richtigen Stelle angezeigt wird, aber zurück bleibt immer noch die miese Performance des AFM (20-31 FPS, je nach Filter)
Was mir grad so auffällt: Es gibt keine Möglichkeit, die Event ID von "This Event" zu kriegen. Den einzigen Workaround den es gibt, ist die X/Y Koordinaten von einem Event zu speichern und dann "Get Event ID" mit diesen Koordinaten zu benutzen, allerdings wird es dann problematisch, wenn zwei Events auf dem selben Tile liegen, weil dann nur das mit der höheren Event ID benutzt wird.
Gibt es 'ne Möglichkeit, irgendwie einfach so an die ID zu kommen? Mit dem Variablenbefehl kommt man immerhin an so tolle Sachen wie Facing oder Map ID von "This Event", echt seltsam, das da die Event ID nicht dabei ist. °L°
Was mir grad so auffällt: Es gibt keine Möglichkeit, die Event ID von "This Event" zu kriegen. Den einzigen Workaround den es gibt, ist die X/Y Koordinaten von einem Event zu speichern und dann "Get Event ID" mit diesen Koordinaten zu benutzen, allerdings wird es dann problematisch, wenn zwei Events auf dem selben Tile liegen, weil dann nur das mit der höheren Event ID benutzt wird.
Gibt es 'ne Möglichkeit, irgendwie einfach so an die ID zu kommen? Mit dem Variablenbefehl kommt man immerhin an so tolle Sachen wie Facing oder Map ID von "This Event", echt seltsam, das da die Event ID nicht dabei ist. °L°
...
Kuck mal bei den Variablen Operationen unter Sprite --> This Event --> MapID ob du da rankommst, da wo du dich befindest ^^ Ich denke damit meinen die die Event ID des Events ^^;
"MapID" ist die derzeit geladene Map. Ist leicht verwirrend, weil das nicht unter [Weiteres] steht,
sondern dort unsinnigerweise ein Event mit angegeben werden muss.
--
Solange es hier falschzitierende Ärsche gibt, dulde ich keinerlei Zitatboxen, die von mir sein sollen.
"MapID" ist die derzeit geladene Map. Ist leicht verwirrend, weil das nicht unter [Weiteres] steht,
sondern dort unsinnigerweise ein Event mit angegeben werden muss.
...
oh achso, habs nicht getestet xD wäre so schön naheliegend gewesen...
Ich weise nur mal darauf hin, dass dies bereits über den onComment Callback von DynRPG möglich ist:
Frag MarcL oder jemand anderen, der Code :: Blocks oder irgendeine andere C++ IDE auf dem Rechner eingerichtet hat, das mal schnell zu einem Plugin zu kompilieren.
Meine Güte, ich häng hier so oft ab, das ich schon wieder nen Doppelpost mache. Egal. °J°
Ich stoße langsam an meine Grenzen mit dem Tastatur und Mausplugin von Cherry. Gibt es irgendwie eine Möglichkeit, mit Dyn nicht nur zu erkennen, ob eine Taste unten ist, sondern die Pressed/Released Events abzufangen? Das bräuchte ich nämlich grade echt dringend. D:
Hey, spontan wüsste ich nichts für Mausevents, zumindest nicht in C++.
Das Plugin, zu dem es ja auch den Quellcode gibt, zieht in jedem Frame den Klickzustand der Maus und schreibt diesen in die Variable. Die schnellste Art, dies abzufragen, wäre ein PP, dessen Zykluszeiten höher sein können als die Gedrück-Zeit eines Mausbuttons.
Ich würde also im onFrame-Callback den Zustand in dem Frame merken und mit dme vorherigen auswerten, dadurch kannst du Zustandswechsel in wesentlich höherer Frequenz abtasten. Wenn du einen solchen Wechsel festgestellt hast, merk dir die Position der Maus und ab in Variablen damit, aber bitte so, dass onFrame das nicht sofort überschreibt. Mit diesem schnelleren Polling müsstest du Mausaktionen besser mitkriegen. Dir gehen Klicks verloren, oder?