PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Möglichkeit Pictures "Map-relativ" anzuzeigen?



IndependentArt
13.08.2013, 22:23
Man kennt die Funktion des 2k, ein Picture screen-relative anzuzeigen. Das funktioniert bei Lightmaps zB recht gut. Aber wenn ich nicht wieder irgendwas übersehen hab, bin ich mal wieder an die Grenzen dieser Funktion gestoßen. Denn sobald man ein Pi so anzeigt und danach, danach nochmal die Koordinaten + oder - macht und der Hero gleichzeitig läuft also den Screen bewegt, geht das nicht mehr.

Was ich machen möchte: Ich will ein Picture von einer Seite der Map zur anderen fliegen lassen und das vollkommen unabhängig von der Heroposition. Dabei verändert es immer wieder seine Koordinaten per +/- und zusätzlich wird es auch immer ausgetauscht bzw. gewechselt. Mir fehlt hier eine Funktion map-relativ, wo man das Ding eben wirklich an die Map binden könnte. Als Notlösung fällt mir noch die Möglichkeit ein, es an ein sich bewegendes Event zu bindne.

Gibts dazu vielleicht Patches oder so?

Brei
13.08.2013, 22:35
imo sollte das ohne patch funktionieren...

hast du mal versucht die position des hero's einfach rauszurechnen, in dem du die koordinaten des bildes abhängig machst von den screen-koordinaten eines unbeweglichen events?

(dazu natürlich noch die bewegung die es machen soll)

IndependentArt
13.08.2013, 22:41
Die Koordinaten beziehen sich ja auch nicht auf den Hero sondern auf ein PP-Event was das Pic bewegt und anzeigt. Trotzdem ist es eben von der Screen Posi abhängig.
Was man mit den normalen "x/y position" macht, was ich aber auch nicht genau...also das statt screen relative wählen. Damit wird die Map-Postion, also das Feld irgendwie abgefragt.

Brei
13.08.2013, 22:48
ich geb einfach mal bisschen pseudocode wie ich das machen würde, ich hoffe das format ist für dich ok :p :

pos := screen koordinaten von anzeige-event (das ist im übrigen in Pixeln, und abhängig von den helden position, kompensiert damit die eigenschaft von move picture screen relativ zu sein.)
pos += die x/y weite in pixeln damit das event da ist wo es soll
move picture (an Position pos)

-------------------
egal wie oft das event jetzt durchläuft, es zeigt das bild immer an der selben stelle an

wenn er sich bewegen soll, dann wärs sowas like:


framezähler+=1
pos := screen koordinaten von anzeige-event
pos += die x/y weite in pixeln damit das event da ist wo es soll
pos.x += framezähler* zahl
move picture (an Position pos)

währ jetzt bespielsweise ne konstant schnelle fahrt nach rechts ...

MagicMaker
14.08.2013, 00:22
Wenn man kein Destiny verwendet, sollte es hiermit gehen, EV#### muss ein Event sein, das sich oben links auf der Map befindet:

<> Variable: [AAAA:PicX] = EV#### ScreenX
<> Variable: [AAAA:PicX] - 8
<> Variable: [AAAA:PicX] + Position, die das Pic hätte, wenn man ganz links ist
<> Variable: [BBBB:PicY] = EV#### ScreenY
<> Variable: [BBBB:PicY] + Position, die das Pic hätte, wenn man ganz oben ist
<> Picture: #### "Blablaname" { V[AAAA] | V[BBBB] } [MoveWithMap]
<>
Der Code läuft einmal am Anfang durch und das sollt's dann sein.
Falls es was animiertes ist, wird's etwas komplizierter.

IndependentArt
14.08.2013, 07:47
pos := screen koordinaten von anzeige-event (das ist im übrigen in Pixeln, und abhängig von den helden position, kompensiert damit die eigenschaft von move picture screen relativ zu sein.)

versteh ich nicht ganz. das ist doch genau das was ich ja gemacht hab. die posi ist zwar abhängig vom event aber bei bewegung und neuzuordnung von variablen oder neuanzeige des pics, wird es verschoben.


Falls es was animiertes ist, wird's etwas komplizierter.

Ist es. ^^ Es bewegt sich auf und ab und soll ab und zu in kleiner Variation, sprich, als anders Pic angezeigt werden.

Ich glaube, es wird das einfachste, sein, wenn ich es auf die Root von einem Event lege ...