Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Variablen] Relative Bildposition in XY-Koordinate umwandeln



Stray
03.06.2014, 22:33
Hallo,

mit Sicherheit ist es eine etwas komplizierte Angelegenheit, aber alleine komm ich einfach nicht drauf.
Ein Bild über ein Ereignis zu setzen indem man die XY-Werte in Variablen umwandelt, die die Bildposition wiedergeben ist ja sehr einfach möglich.

Aber geht das auch umgekehrt? Kann man ein Event unter ein Bild setzen indem man irgendwie die X- und Y-Werte eines Bildes, also deren Relative Bildpositionsangaben in reine X- und Y-Koordinaten umwandelt?

Danke.

Kelven
03.06.2014, 22:54
Spontan, ohne groß darüber nachzudenken, würde ich sagen, dass man auf dem 2K3 die X/Y-Koordinaten des Bildes (=Mittelpunkt) durch 16 teilen muss.

djeurissen
04.06.2014, 06:15
Kelven, das Problem ist das die Bilder immer relativ zum Bildschirm angezeigt werden. Die Standardwerte sind wenn ich mich nicht Irre X:160/Y:120 und diese einstellung setzt den Mittelpunkt des Bildes genau in den Mittelpunkt des Bildschirms...

Wenn man nun also ein Event unter ein Bild setzen will mus man wenn man das Bild anzeigt, erstmal die Position des Helden speichern, dann weiß man schonmal wo sich das Bild ungefähr befindet. Nun muss man nurnoch berechnen wie dein Bild von den Standardwerten abweicht. Sagen wir mal du zeigst ein Bild an der Position X:176/Y:137 an.
176-160 = 16 / 137-120 = 17
Nun wissen wir die abweichung vom Standard, das nurnoch durch 16 teilen (1 Feld im Maker besteht aus 16 pixeln) und schon wissen wir was wir noch von den Koordinaten die wir zuvor gespeichert haben subtrahieren/addieren müssen.
16/16 = +1
17/16 = +1,0625
Ich weiß nicht wie der Maker intern Kommazahlen behandelt, falls er nen Integer zum speichern benutzt werden die Kommastellen am ende einfach abgehackt. Das wollen wir allerdings nicht, den 17 pixel sind technisch gesehen 2 Felder. Entweder wir würden also jede zahl einfach aufrunden 17+(16-(17%16)) und das ganze dann durch 16 teilen 32 / 16 = 2
Oder aber du prüfst einfach ob die Zahl die wir teilen wollen einen Restwert besitzt 17 % 16 und rechnest je nachdem +1 oder -1

Sooo, ich hoffe meine Lösung ist verständlich und nicht viel zu kompliziert ._.

Bex
04.06.2014, 08:14
1. Platziere in die obere Linke Ecke der Map ein leeres Event QW.
2.EventQW wird uns helfen den aktuellen Screenkoordinaten abstand zur oberen ganz linken Ecke zu bekommen, das hilft bei der Rechnung.
Als Position des Bildes auf dem aktuellen Screen nehmen wir mal ScreenX= 160 von Bild1 und ScreenY = 120 von Bild1.
Variable1 = ScreenX von EventQW oben links in der Ecke
Variable2 = ScreenY von EventQW oben Links in der Ecke

(Variable1 mal(-1) +160) geteilt durch 16 (Beim Ace ist es durch 32 beim rm2k kenne ich mich nicht so aus) = Mapkoordinate X für dein Event das du unter dem Picture zeigen willst.
(Variable2 mal(-1) +120) geteilt durch 16 (Beim Ace ist es durch 32 beim rm2k kenne ich mich nicht so aus) = Mapkoordinate Y für dein Event das du unter Dann noch das Event auf die Koordinaten Teleportieren.
Edit: Set Event BlaBla auf X= Variable1 / Y= Variable2

Methode meines vorposters ist glaube ich das selbe falls sich da kein fehler im detail verbirgt.
Beim Mapscrollen könnte es aber trotzdem zu verschiebungen von picture und event kommen. Was hast du eigentlich vor zu Bauen????????????

djeurissen
04.06.2014, 16:56
Bei meiner Methode existiert aufjedenfall ein Fehler den ich heute morgen nicht bedacht habe^^, der Mittelpunkt des Bildschirmes ist normalerweise immer die position des Helden, außer der held befindet sich am Rand der map, das müsste man also noch ausgleichen...

Aber wo ich gerade zum ersten mal relative x und y sehe, keine Ahnung warum ich das immer übersehen habe^^, wenn ich schonmal hier bin, was macht der Befehl genau? Ich verstehe den nicht ganz^^

Bex
04.06.2014, 21:41
Was genau möchtest du denn erklärt haben? Was meinst du mit relative Variable?

djeurissen
05.06.2014, 05:43
Einfach den Befehl bei VariableOprations unter Sprite Screen-Relative X und Y

Kelven
05.06.2014, 07:58
@djeurissen
Ja, das ist richtig. Am besten Stray sagt mal, was er mit dem Bild eigentlich vorhat. Vielleicht gibt es für das Problem noch eine einfachere Lösung, als über die Koordinaten zu gehen. Auf den neuen Makern könnte man alternativ zum Bild vielleicht auch ein großes Charset nehmen.

Screen-X und Screen-Y liefern die Pixelkoordinaten eines Events. Sie werden meistens dazu genutzt, um ein Picture zu setzen.

Bex
05.06.2014, 08:39
Ah jetzt verstehe ich, relative x und Y heisst beim VX und Ace einfach nur ScreenX und ScreenY. Hatte mich nur gewundert zuvor.
Ja es wäre hilfreich zu wissen was er vorhat, um zu sehen ob es nicht einen anderen oder einfacheren weg für das gibt was er vorhat.Wobei die oben beschriebene Funktion funktionieren sollte^^.

Stray
12.06.2014, 01:24
@Kelven:

Ich möchte mich wieder mal an einem Jump'N'Run Spiel versuchen, allerdings mit Pixelmovement, da viele das ungenaue auf Feldern basierende nicht spielen wollen. Meistens wird mir dann das Pixel Movement Script (http://www.rpga.info/forum/showthread.php?t=50311) von Simon empfohlen. Der Aufwand dafür scheint mir aber so immens hoch zu sein, weil man dafür die ganze Umgebung und alle seine Gegner per Pictures animieren und bewegen müsste.

Was ich machen möchte ist etwas kompliziert zu erklären:
Ich habe mir gedacht, dass man ein Script machen kann, in dem nur der Held als Bild animiert wird, hauptsächlich damit Pixelmovement in der Steuerung möglich ist. Unter dieses Bild wird permanent ein Ereignis gesetzt, das dann als Orientierungspunkt für den Standpunkt des Helden dient. Überschreitet das Bild dann ein Feld zu mehr als 50% (oder höher) wird das Ereignis auf das am nächsten liegende Feld gesetzt.

Es wäre eine pflegeleichtere Art für Pixelmovement im RPG Maker, denke ich.


@Djeurissen:
Hmmm... ganz klar ist mir die Lösung nicht. :/

djeurissen
12.06.2014, 05:19
Was verstehst du den nicht?

Stray
12.06.2014, 12:47
Was meinst du mit den "Standardwerten"?
Außerdem ist mir nicht ganz klar, wieso das so funktionieren soll bzw. worin in dieser Rechnung die Logik besteht. (Außerdem erschwert mir deine Rechtschreibung und Grammatik das Verstehen. Ohne es böse zu meinen.)

@Kelven:
Dein erster Vorschlag ist schon sehr nah dran an einer Lösung, aber jetzt braucht es nur noch ein System, dass das ganze auch in Bereichen außerhalb der 20x15 Grenzen einer Map funktionieren lässt.
Da mein Bild die ganze Zeit vom Bildschirm verfolgt wird, lässt sich daraus ja evtl. auch irgendwie feststellen wo sich das Event befindet.

@Bex:
Danke, das funktioniert auf einer 20x15 Map schon sehr gut.


Nun gibt es eine gute und eine schlechte Nachricht:

Die Gute ist, dasss es auch auf einer größeren Map mit Scrolling usw. wunderbar funktioniert! Danke schon mal!
Die Schlechte ist allerdings, dass das Event viel früher auf links/oben gegenüber liegende Felder wechselt, wenn man es mit den Pfeiltasten bewegt.

PROBLEM
http://s7.directupload.net/images/140612/ds5lxjhm.png
Das Kind ist hier das Ereignis, dass sich unter dem Bild befindet. Das Bild ist das weiße Quadrat. Man kann es mit den Pfeiltasten bewegen.
Bild 1:
Wird das Bild nach links bewegt, reicht es schon, wenn dieses 1 Pixel nebenan liegt, das Ereignis
springt sofort auf das links nebenan liegende Feld.
Bild 2:
Bewege ich allerdings das Bild nach rechts, springt das Ereignis nicht auf die rechte Seite. Erst wenn es...
Bild 3:
...ganz auf dem Feld liegt.
Bild 4 & 5:
Selbiges gilt für Hoch und Runter. Bewege ich das Bild nach unten springt das Ereignis nicht auf dieses
Feld bis das Bild komplett auf dem Feld liegt. Bewege ich das Bild nach oben, brauchte es nur einen
einzigen Pixel bis das Ereignis nach oben hüpft.

Mein ideales Ziel wäre nun, dass das Ereignis bereits/erst dann auf dem Feld liegt, wenn das Bild die daneben liegende Fläche zu mehr als 25% übertritt bzw. 4 Pixel.

Bex
12.06.2014, 15:23
EDIT:
Zeigst du das Bild mit der Option Center oder Linke obere Ecke an?
Es muss Center sein. Wenn dann immer noch ein Fehler da ist, liegt es an meiner Rechnung.
Ich glaube das liegt daran das das Event oben Links ja nicht die Screenkoordinaten x/y 0/0 hat sondern glaube ich 16/16 im Ace^^ also bei dir wohl 8/8.
Also die Screen Y und X beim Event oben um -8 jeweils rechnen vor dem umrechnen in map koordinaten.

Nun muss du nur noch schauen ob es schon klappt oder ob du die umwandlung von Screenvariablen zu Map Variablen noch rundest fürs fine tuning.

Edit2: Zusätzlich wären Bilder deines gesammten Eventcodes vorteilhaft.
Finde ich cool das du sowas mit so einfachen mitteln bauen willst.

Wofür braucht man das Event unter dem Bild?????????????????????????????

Bex
12.06.2014, 17:26
So hab meinen Post editiert, lässt sich leider nicht auf neu stellen.
Push^^ Oben deine Antwort.

BDraw
12.06.2014, 23:36
Mag sein, dass ich's überlesen habe, aber welchen Maker benutzt Stray denn?
Das sieht nach 2k/3 aus, da wird Standardmäßig die Mitte des Bilds benutzt. Auswählen, ob der Maker mit der Bildmitte oder der oberen, linken Ecke rechnen soll, konnte man erst ab dem RPG Maker XP.

Ich sehe aber nicht ganz, was damit gewonnen ist, ein unsichtbares Helden-Event zu bewegen. Du kannst die Map-Koordinaten (also gemäß des Rasters) abfragen, aber die Position hast du ja durch das Pixelmovement eh in irgendwelchen Variablen gespeichert.
Weiteres Problem: Das Event wird dir nicht helfen, die Kollision auszutricksen, da dein Bild eben 8px Pufferzone hat, in der es mit anderen Events und Tiles überlappen kann. Die einzige Möglichkeit wäre hier nach dem Tastendruck und vor dem Bewegen des Bildes abzufragen, ob das Bild bewegt werden darf, sprich, du müsstest die Abmessungen deines Pictures nehmen und schauen, ob und wie weit es in das nächste angrenzende Kästchen hineinragt.

Nächstes Problem wäre dann, dass Events die sich zufällig oder gemäß einer Route bewegen, nur das Event erkennen und nicht das Bild und somit auch überlappen würden. Bloß das zu umgehen ist noch einmal komplizierter.

Stray
13.06.2014, 00:31
@BDraw:
Naja, solange es umgehbar ist, ist mir die komplizierte Alternative angesichts des restlichen Aufwands (wie Mapgestaltung und Gegner usw.) sehr recht anstatt ALLES mit Bildern und Pixelmovement zu bewegen.
Ein leichtes Überlappen ist ja tolerierbar, jetzt kommt's eben auf eine Grenze an die dafür gelegt werden muss.

Kollisionen hab ich schon gelöst, zumindest mit Wänden: Es werden einfach die Terrains der dem Helden-Event gegenüberliegenden Kästchen abgefragt.
Ist das Terrain 1, bedeutet das, dass sich daneben unbegehbarer Boden befindet. Terrain 2 bedeutet Luft, der Held kann sich dort bewegen. Das Überlappen habe ich gelöst, indem ich ein Kontrollsystem in das Helden-Event eingbaut habe: Es kontrolliert die ganze Zeit, ob sich das Bild in seinen Koordinaten genau auf dem Helden-Event befindet. Sind die relativen Bildwerte des Helden-Events gleich mit den relativen Bildwerten des Bildes kann sich das Bild an dieser Stelle nicht mehr weiter bewegen, wenn das benachbarte Feld eine Blockade bzw. Terrain 1 ist.
Z.B. befindet sich der Held einen Schritt links neben der Wand, sagt ihm das Script, dass rechts davon der Terrain 1 liegt. Steuert man nun nach rechts, während sich das Bild noch etwas weiter links über der Mitte des Helden-Ereignisses befindet, kann man noch nach rechts steuern. Ab dem Zeitpunkt wo es genau darauf liegt ist dann vorerst Sense in der Steuerung gegen die Wand und überlappen ausgeschlossen.


@Bex:
Danke, funktioniert wunderbar!
Und genau mit dem was BDraw beschrieben hat möchte ich jetzt eigentlich auch weiter machen, ich brauche noch ein System um diese Pufferzone von 8 Pixeln zu verkleinern.

Bex
13.06.2014, 00:48
Was meinst du genau mit Pufferzone?

Dein Held müsste unterschiedlich lange Schritte machen um das zu beheben wenn du das meinst was ich denke. 16Pixel von Feldmittelpunkt zu Feldmittelpunkt. Und 8 Pixel sinds zur verflichsten kannte,
wo sich 2map tiles gegenüberliegen.
Die Schitte müssten also
5Pixel 6Pixel und 5Pixel lang sein von Feld zu Feld. also in 3Schritten.

Du brauchst das Event unter dem Heldenbild nicht um Treffer zu berechnen, dafür kannst du die Screen Positionen der Monster nehmen und minus der Screenposition des Heldenbildes rechnen .Glaube ich zumindest grad^^ habs nicht getestet.

Edit: Das mit den drei Schritten hatte zwar gelöst das du nicht mehr auf die mitte zwischen 2 tiles laufen kannst, nun noch die lösung für das überlappen...
hmmm....hängt mitlerweile davon ab wie dein code gestaltet ist.....

Hast du schon eine Idee wie du das Picture Animieren willst? Das stelle ich mir recht schwer vor, besonders während des bewegens.

BDraw
13.06.2014, 01:19
Es geht bei der "Pufferzone" um folgendes:
Während ein Event nur 16px-Schritte machen kann, kann Pixelmovement eben auch kleinere Schritte machen und befindet sich somit zwangsläufig den Großteil der Zeit irgendwo zwischen zwei Tiles. Es ist also möglich, dass der Picture-Held aufeinmal zwischen zwei Tiles steht. Das ist nicht weiter kritisch, außer, auf einem der beiden Felder ist etwas, was ihn blockieren kann/soll: Während er von den Tile-koordinaten her noch "vor" dem Hindernis steht, befindet er sich aber optisch bereits weiter und hängt somit in dem Hindernis drin.
Wenn der Held jetzt, sagen wir mal, wirklich 16px breit ist, darf er sich also nicht mehr über den Kästchenmittelpunkt hinausbewegen, sollte in der Richtung neben ihm ein Hindernis stehen. Deine drei Schritte lösen dieses Problem nicht, sie sorgen nur dafür, dass der Held sich nur 1/3 oder 2/3 zwischen den Tiles befinden kann. Umgehen kann man das nur, indem jeder Tastendruck den Helden 16px bewegt, aber dann braucht man kein Pixelmovement mehr.

Ergo:
1. Spieler drückt Taste
2. Abfragen, wo der Held ist
3. Abfragen, ob das Feld vor ihm begehbar ist
3.1 JA: Kein Thema, Held darf bewegt werden.
3.2 NEIN: Abfragen, was die Position nach der Bewegung wäre. Geht sie über die Tile-Mitte hinaus, bzw. wäre die neue Position problematisch?
3.2.1 JA: Der Held darf sich nicht bewegen.
3.2.2 NEIN: Okay, kein Thema, Held darf bewegt werden.

So ganz grob. Abfragen, ob ein Feld begehbar ist, hast du ja schon raus, was noch nützlich ist ist abzufragen, welche Event-ID das Event auf dem Zielfeld hat. Ist diese 0, so ist dort kein Event, wenn doch, ist ein Event da (eben das Event mit der jeweiligen ID. Wenn du ordentlich bist, kannst du dann gezielt sagen, welches Event dort steht und ob es eine Blockade oder begehbar ist). Das ist wichtig für NPCs, aber auch wenn du im Upper Layer Sachen hast, die blockieren können, da dem Upper Layer soweit ich das im Kopf habe keine Terrain IDs zugewiesen werden können.

Ich weiß, dass ich sowas mal in einem alten Testprojekt hatte, aber das existiert garantiert nicht mehr. :| Kurz gesagt, du musst vor dem Bewegen des Bildes abfragen, wo es theoretisch nach der Bewegung wäre und ob es da sein darf.
Für das animieren könntest du einen eine Variable benutzen, die den Animationsstatus angibt (stehen, bewegen wenn Bewegung möglich ist, ...) und einen separaten Parallelen Prozess der anhand dieser Variable das Bild ändert.

Andere Frage:
Weißt du schon, wie du es erreichst, dass ein Held das größer als 16px ist unter einem NPC angezeigt wird, wenn es auf der Map direkt unter ihm steht? Bei einem Sidescroller (würde sich ja bei Jump'n Run anbieten) hättest du das Problem natürlich nicht. Oder wenn dein Held genau auf ein Tile passt.

Bex
13.06.2014, 10:50
Die Abfragen wo was passierbar ist sind glaube ich möglich aber nicht sehr leicht. Bin gespannt ob du was austüftelst.

Die Animation des Pictures stelle ich mir am aller schwersten vor, besonders wenn es sich noch gleichzeitig mit move picture bewegen soll.

Stray
13.06.2014, 15:02
Die Animation ist gar nicht so schwer. Beim RPGM2k(3) gibt es ja Wartezeiten in (ich glaube?) Millisekunden. Im Maker heißt das dann 0.0 Sekunden. Das Bild wird dann alle 2x0.0 Sekunden wieder geupdatet. Längere Wartezeiten und Animationen dazwischen werden mit mehreren gleichen Bildern gemacht, damit das Bild auch immer auf der Position bleibt.

Ich habe mittlerweile festgestellt, dass die Bildschirmbewegung am schwierigsten zu scripten ist, da die Position des Heldenbildes (und somit vom Helden) eben genau von der Bildschirmposition abhängt. Das heißt, wenn sie sich verändert, rutscht das Bild mit, egal was man dagegen tun möchte. x_x
Das Problem ist jetzt eigentlich also mehr: Wie schaffe ich es den Bildschirm temporär unabhängig vom Helden zu machen, ohne dass es die Bewegung vom Helden beeinflusst?

EDIT:
Sogar das Scrollen gelöst. :)

Ein Schritt mit der Geschwindigkeit "Normal" dauert In "Wait": "0,1 Sek" + 2x "0,0 Sek" (also 8x 0,0 Sek)
Ein Schritt mit der Geschwindigkeit "2xSlower" dauert In "Wait": "0,2 Sek" + 4x "0,0 Sek" (also 16x 0,0 Sek)
Das bedeutet, während sich der Bildschirm mit 2x Slower bewegt wird der Spieler alle 0,0 Sekunden jeweils 1 Pixel in die entgegengesetzte Richtung zurückgeschoben.
Bei Normal wären das denn jeweils 2 Pixel, nur macht es das logischerweise ungenauer und wirkt auch im Spiel nicht besondern gut.

Bex
13.06.2014, 18:49
Ich hab noch eine Idee zur Ergänzung:
PlayerHeld Event wird erschossen und in eine unsichtbare Kamera verwandelt.
Dann benutzt du unter dem PictureHelden ein simples Mapevent, das bewegt die Kamera nicht.
Nun kannst du zum beispiel Maps machen wo die Karte unterschiedlich schnell scrollt, oder erst an bestimmten Positionen.
Das sollte einem noch ein bischen mehr Spielkram mit der Optik erlauben.

Stray
14.06.2014, 01:19
Versteh ich nicht. Erschossen? :D
Wie wird es in eine unsichtbare Kamera verwandelt?
Irgendwie ist dein Text etwas unerklärt.

Die große Schwierigkeit aktuell ist, wie das Event erkennt, dass der Sprung unterbrochen wird. Das Bild bewegt sich beim Sprung jede Sekunde um jeweils 8 Pixel nach oben. Es ist dem Heldevent dabei also immer einige Pixel voraus, weil es ja etwas überlappen kann. Wie hindere ich es nun am Überlappen? Es geht zumindest schon mal nach unten bzw. fängt wieder an zu fallen, wenn es erkennt, dass sich ein Feld weiter oben ein Terrain, dass eine Blockade ist, befindet. Ich hab schon alles mögliche ausprobiert. *sfz* :rolleyes:
Wirklich erst mal umständlich...

Bex
14.06.2014, 03:22
Mit erschossen meinte ich , das du statt des Helden ein Event benutzt das unter dein Picture teleportet wird.

zu deinem problem mit der begehbarkeit, wie sieht denn dein bisheriger code aus? So ist es schwer etwas brauchbares zu sagen.

Stray
15.06.2014, 16:09
Hab's bereits ganz gut gelöst.

Das Scrolling ist allerdings doch wieder ein größeres Problem, da es rucklig läuft. Das Heldbild bewegt sich nämlich mit Pixel und das Scrolling kann dagegen nur in Feldern. Außerdem wird die Position vom Herobild durch den Bildschirm bewegt und das muss gleichzeitig ausgeglichen werden. Manchmal wird das Heldbild weiter verschoben als eigentlich soll.

Spätestens ab hier wird's irgendwie happig. Tatsächlich ist das das letzte Problem was es gibt. Dannach wäre das Pixelmovement denke ich angenehm spielbar.

Bex
15.06.2014, 17:30
Hättest du jetzt den VX Ace hätte ich vorgeschlagen ein Pixelmovement Script zu nutzen oder beim Eventbefehl Set Move Route
bei Script move_to(x,y) eingegeben.Damit kann man ein Char oder Event pixelgenau versetzen. (Solange das Event dann aber nicht genau auf dem Mapgrid ist ignoriert es die Begehbarkeiten. Die Probleme beim Mapscrollen würden aber wegfallen.

Edit: Konnte man beim RM2K nicht Pictures standardmässig an die Map Tackern? Gabs da nicht so ein Kontrollkästchen bei dem Befehl?

Stray
15.06.2014, 18:36
Edit: Konnte man beim RM2K nicht Pictures standardmässig an die Map Tackern? Gabs da nicht so ein Kontrollkästchen bei dem Befehl?

Das stimmt. Eigentlich.

Wenn man das Kontrollkästchen "Picture Scrolls with Map" aktiviert, bleibt das Bild an seiner Position. Das würde super funktionieren. Allerdings muss das Bild aufgrund der Animationen jede 0.0 Sekunde neu geladen werden. Das bedeutet, dass das Bild immer wieder auf's neue an seine Stelle gesetzt wird, ohne dass es an seiner vorherigen Stelle stehen bleiben würde.

Morden
17.06.2014, 07:38
Mag sein, dass ich's überlesen habe, aber welchen Maker benutzt Stray denn?
Das sieht nach 2k/3 aus, da wird Standardmäßig die Mitte des Bilds benutzt. Auswählen, ob der Maker mit der Bildmitte oder der oberen, linken Ecke rechnen soll, konnte man erst ab dem RPG Maker XP.

Witzig - genau diese Funktion hab ich mir mal per DynRPG-PlugIn gebaut xD Ich glaub ich sollte mein PicturePlugIn echt mal veröffentlichen xD


Hab's bereits ganz gut gelöst.

Das Scrolling ist allerdings doch wieder ein größeres Problem, da es rucklig läuft. Das Heldbild bewegt sich nämlich mit Pixel und das Scrolling kann dagegen nur in Feldern. Außerdem wird die Position vom Herobild durch den Bildschirm bewegt und das muss gleichzeitig ausgeglichen werden. Manchmal wird das Heldbild weiter verschoben als eigentlich soll.

Spätestens ab hier wird's irgendwie happig. Tatsächlich ist das das letzte Problem was es gibt. Dannach wäre das Pixelmovement denke ich angenehm spielbar.

Wenn du den 2k3 verwendest: Per DynRPG ist es möglich die Kamera pixelgenau zu verschieben! Das wäre nichtmal wirklich kompliziert ein PlugIn zu schreiben, dass diese Funktionen per Kommentar-Kommando durchreicht.


Das stimmt. Eigentlich.

Wenn man das Kontrollkästchen "Picture Scrolls with Map" aktiviert, bleibt das Bild an seiner Position. Das würde super funktionieren. Allerdings muss das Bild aufgrund der Animationen jede 0.0 Sekunde neu geladen werden. Das bedeutet, dass das Bild immer wieder auf's neue an seine Stelle gesetzt wird, ohne dass es an seiner vorherigen Stelle stehen bleiben würde.

Ich hoffe, dass du dort nicht jedes Mal den ShowPicture-Befehl verwendest^^
Wegen Animationen: Es gibt von Kazesui ein DynRPG-PlugIn, mit dem man SpriteSheets als Pictures laden kann und dann Zugriff auf die einzelnen Animationsframes hat. Vielleicht hilft dir das auch noch ein wenig bei deiner Lösung weiter.

PeAcE
MorDen

Kyuu
17.06.2014, 11:04
Wegen Animationen: Es gibt von Kazesui ein DynRPG-PlugIn, mit dem man SpriteSheets als Pictures laden kann und dann Zugriff auf die einzelnen Animationsframes hat. Vielleicht hilft dir das auch noch ein wenig bei deiner Lösung weiter.


Oder man nutzt RPGSS und schreibt sich ein Skript, das Animationen abspielen kann. Vorteil: Blend Modes, absolut keine Einschränkungen, einfache Wartung/Erweiterung. *Werbung mach*

Bex
17.06.2014, 11:50
Ich dachte beim alten Maker kann man nicht scripten? sind diese plug inns auch grauzone wie der alte maker?

Kyuu
17.06.2014, 12:22
Ich dachte beim alten Maker kann man nicht scripten?


Dann habe ich wohl die ganze Zeit geschlafen und sollte langsam aufwachen. :<



sind diese plug inns auch grauzone wie der alte maker?


Die Plugins selbst sind keine Grauzone, es sind eigenständige Drittanbieterprogramme und meistens implizit oder explizit unter einer liberalen Lizenz. RPGSS z.B. ist unter der MIT-Lizenz erhältlich. Ob und wie du Plugins verwendest, ist dann deine Sache.

Bex
17.06.2014, 12:40
Danke, die antwort hilft mir weiter.
Interessant wäre es dennoch ob der TE es mit den Makermitteln und oder mit nur wenig externen hilfsmitteln hinbekommt was er vorhat.

Stray
26.07.2014, 02:08
Wow,

ich wäre tatsächlich ziemlich interessiert an dem Pixelgenauen Scrollen, das wäre das Wundermittel, das alle Probleme löst, die noch übrig sind! Das wäre göttliche Beihilfe, denn es ruckelt und zuckelt im Testspiel mit dem Block-Scrolling was das Zeug hält und ich hänge schon lange an einer Lösung. Ansonsten funktioniert nämlich alles wunderbar!

(Lustigerweise teste ich genau in diesem Moment einige Dyn-Plugins...)

Übrigens braucht man beim Y-Wert einem von mir durchgeführten Hardcore-Test zufolge 16 anstatt 8 Pixel im Script, das Bex genannt hat.
Das bedeutet das nahezu perfekte Script zum Umrechnen von Bild in Eventkoordinaten sieht demnach so aus:

20743
(Variable 1 und 2 sind dann die X- und Y-Werte vom Bild, für alle die völlig neu zufällig reinschnuppern)

Ich muss mich trotzdem noch mal bedanken, das hat mir in so vielerlei Hinsicht geholfen!

goldenroy
01.08.2014, 12:02
Wow,

ich wäre tatsächlich ziemlich interessiert an dem Pixelgenauen Scrollen, das wäre das Wundermittel, das alle Probleme löst, die noch übrig sind! Das wäre göttliche Beihilfe, denn es ruckelt und zuckelt im Testspiel mit dem Block-Scrolling was das Zeug hält und ich hänge schon lange an einer Lösung. Ansonsten funktioniert nämlich alles wunderbar!


RPGSS hat Funktionen für die Kamera, nämlich game.map.getCameraPosition, game.map.setCameraPosition und game.map.moveCamera, aber ich weiß nicht, inwiefern die in deinem Fall passen. :0

Stray
01.08.2014, 15:37
Und um Programmieren zu lernen hab ich momentan leider nicht die passende Masse an Zeit. :/
Aber immerhin ist das schon mal ein Tipp, vllt. für später...