Archiv verlassen und diese Seite im Standarddesign anzeigen : Lichteffekt richtig positionieren...
Ich könnte schwören, dass das hier erst neulich jemand diesbezüglich einen Thread aufgemacht hat, aber ich habe nichts dergleichen gefunden, also eröffne ich einen neuen...
Lichteffekte werden dieser Tage ja immer wichtiger, und auch wenn man immer wieder liest das sogenannte "Lightmaps" keineswegs zwingend notwendig sind, um ein Spiel spielbar zu machen werden oft kritische Stimmen laut, wenn man einen Screen ohne Lichteffekt (von jetzt an von mir LE genannt, muss ich weniger schreiben...) zur schau stellt. Außerdem lassen sie so manche Map einfach schöner ausehen!
Daher habe auch ich beschlossen, mich an ein paar heranzuwagen.
Wenn man eine Map mit 320x240px hat, dann ist das richtige platzieren eines LEs kein weiteres Kunststück, man muss es einfach mittig platzieren.
Schwieriger (und endlich komme ich nach übertriebener Einleitung zu meinem Problem) wird es, wenn die Map größer ist als 320x240.
D.h. ich habe eine größere Map und möchte auf ihr einen LE (der vom Pic her so groß ist wie meine Map) anzeigen! Mein Char muss aber von zwei Seiten die Map betreten können und zwar jeweils extrem links und rechts auf der Map, der LE soll jedesmal richtig angezeigt werden. Daher meine Frage, ob es ein allgemeines, rechnerische Vorgehen gibt, mit der mein Problem zu lösen ist und vor allem, wie es lautet!
ive beaten tetris
11.03.2006, 21:23
Bisher hatten sich die Macher immer damit abgefunden, dass die Lichteffekte der Map folgen sprich ständig zentriert sind. Es ist möglich, die Lichteffekte festzusetzen. Den rechnerichen Vorgang hab ich nicht im Kopf, sollte aber recht kompliziert werden ;)
EDIT: Ich hab vergessen zu erwähnen, dass es keine Pictures gibt, die Endlosgröße beinhalten dürfen. Die werden beim Import dann hals als invalid angezeigt und so weiter. WENN du wirklich ein großes Picture willst, dann musst du viele 320x240er Pics erstellen und einzeln zusammenfügen. Aber ich denke mir mal, dass es, egal wie du skriptest, nie perfekt angezeigt werden kann, dass du immer irgenwo einen kurzen ruckelnden Übergang sehen wirst. Variablen sind halt auch nur Variablen ^^
Sollte eigentlich nicht schwer sein, den Mittelpunkt der Map in Pixeln rauszifinden, wenn man weiß, dass ein Tile 16*16 Pixel gross ist.
Bei 20*15: 20*16 / 2 und 15*16 / 2. Bei einer Map mit 100*100 Tiles dann 800 und 800. Und Pictures kriegt man locker sehr gross. Gab in der Makers Mind mal ein Tutorial dazu.
ive beaten tetris
11.03.2006, 22:09
Sollte eigentlich nicht schwer sein, den Mittelpunkt der Map in Pixeln rauszifinden, wenn man weiß, dass ein Tile 16*16 Pixel gross ist.
Bei 20*15: 20*16 / 2 und 15*16 / 2. Bei einer Map mit 100*100 Tiles dann 800 und 800.
Bei der ersten Einstellung des Show Picture wird IMMER der Mittelpunkt angezeigt. Das wären dann 160x120.
Wenn du eine Map mit 100x100 Tiles hast, möchte ich dich gern mal sehen, wie du dann versuchst dein Picture in die Mitte zu klemmen :D
Du müsstest dann theoretisch bis in die Mitte der Map laufen um das Bild zu sehen xD
Maisaffe
11.03.2006, 22:20
Größere Bilder kann man doch einbauen wenn man die PNG direkt als 256Farbbild in den Ordner des Projekts steckt. Mag zwar der Maker nicht, aber geht afaik.
Dann benötigt man noch eine Berechnung - und ein Skript dass das Bild immer genau so verschiebt das es nciht aussieht das der Player läuft und das Bild nachrutscht, oder das Bild zuschnell rutscht und der Player langsamer ist. :D
Dennis
Er wollte doch eine Lightmap auf eine grössere Map bringen. Da sollte eigentlich nichts rutschen (?).
Ich habe weder das Problem, dass das Bild "rutscht" noch das das Bild für die Map zu klein ist! Das das Häckchen bei "Move with Map" rein muss ist mir auch klar!
Ich formuliere mein Problem mal konkret:
Ich habe eine Map mit den Maßen 368x336 und einen LE mit den Maßen 368x336! Die Map ist von zwei Seiten aus betretbar!
Egal von welcher Seite aus man die Map betrit soll der LE richtig angezeigt werden!
Sollte eigentlich nicht schwer sein, den Mittelpunkt der Map in Pixeln rauszifinden, wenn man weiß, dass ein Tile 16*16 Pixel gross ist.
Bei 20*15: 20*16 / 2 und 15*16 / 2. Bei einer Map mit 100*100 Tiles dann 800 und 800. Und Pictures kriegt man locker sehr gross. Gab in der Makers Mind mal ein Tutorial dazu.
Der Mittelpunkt bringt mir allein überhaupt nichts, denn es kommt darauf an, wo der Held steht, wenn das Bild platziert wird! Wenn ich für die Koordinaten den Mittelpunkt der Map eingebe, dann funktioniert das (logischerweise) nur, wenn der Held oben links au der Map steht! Wenn er aber z.B. rechts unten steht, dann wird das Bild wieder falsch angezeigt!
Dann musst du das ganze über die Hero Koordinaten umrechnen. Bin leider etwas zu Müde da was auszudenken. Editier ich morgen rein.
Ich möchte gleich mal vorwarnen das ganze funktioniert nicht so simpel wie man es sich vorstellt, mein Techniker hat sich lange nen Kopp drum machen müssen.
Import von Oversize klappt aber ohne Probleme. Man muss nur nen Dummy mit selber Farbpalette importieren und dann im Verzeichnis durch die richtige Grafik ersetzen.
Habs getestet mit ner 5000*5000 Grafik.
Zufälligerweise musst du nur an den Mittelunkt der Map ein Event platzieren, welches du z.B. "Lightmap" nennst. Dann in dem Event das die Lightmap anzeigt, stellst du 2 Variablen ein. Einmal "Lightmap-X" und "Lightmap-Y" und die speichern dann jeweils die Screen-Koordinaten (also nich die vom Helden, denn dann stimmts ja nich) von diesem Event. An denen wird das Bild dann angezeigt und schwupps, isses richtig platziert. Meist musst du aber nach der Einstellung noch eine oder beide Variablen um 8 verörßern/verkleinern damit es wirklich richtig angezeigt wird, aber du siehst ja beim Test obs nun richtig is oder nich.
Größe des Bildes durch 2 Teilen, dies in 2 Variablen einspeichern, und dann nurnoch von diesen Positionen das Bild anzeigen. Ich könnte mich irren, aber imo ist es so denkbar einfach.
EDIT: Ich hab vergessen zu erwähnen, dass es keine Pictures gibt, die Endlosgröße beinhalten dürfen. Die werden beim Import dann hals als invalid angezeigt und so weiter. WENN du wirklich ein großes Picture willst, dann musst du viele 320x240er Pics erstellen und einzeln zusammenfügen. Aber ich denke mir mal, dass es, egal wie du skriptest, nie perfekt angezeigt werden kann, dass du immer irgenwo einen kurzen ruckelnden Übergang sehen wirst. Variablen sind halt auch nur Variablen ^^
YOU ARE WRONG!
Es gibt da einen kleinen, aber einfachen Trick:
Picture importieren.
Größeres Picture erstellen und auf 256 Farben runtersetzen, blabla.
Die Hintergrundfarbe des großen Pictures muss die gleiche ID haben wie die, des importierten Pictures.
Dazu nimmt man z.B. Paint Shop Pro, geht auf Farben -> Farbpalette bearbeiten und positioniert die Farben halt so um, dass die Hintergrundfarbe den Wert 0 hat (sprich: In der Tabelle ganz links oben ist).
Dadurch, dass die Farben geändert wurden, muss man halt nochmal die Bereiche, die mit dieser Aktion farblich geändert wurden, neu einfärben, was aber nicht das Problem sein sollte.
Das importierte Picture nun mit dem großen Picture ersetzen.
Fertig.
Die Koordinaten muss man mit größeren Pictures dann halt afaik mithilfe von Variablen angeben.
Seltsamerweise artet das jetzt in eine Dikussion aus, wie man Bilder mit Übergröße trozdem anzeigen lassen kann! Allerdings ist das nicht der Kern meines Problems, weswegen das ganze etwas Off-Topic wird!
Die Methode von JackandDrake funktioniert übrigens sehr gut! Allerdings wundere ich mich, ob es nicht ein allgemeines rechnerisches Verfahren gibt, das ich ohne Zusatzevent von Map zu Map, unabhängig von der Größe der Map, benutzen kann!
Vlt. wenn du die Picture Koordinaten so mit den Map Koordinaten abgleichst, dass der obere linke Punkt des Pictures oben links auf die Map gesetzt wird. Dazu müsstest du aber die Hero Koordinaten mit den Map Koordinaten abgleichen.
Die Methode von JackandDrake funktioniert übrigens sehr gut! Allerdings wundere ich mich, ob es nicht ein allgemeines rechnerisches Verfahren gibt, das ich ohne Zusatzevent von Map zu Map, unabhängig von der Größe der Map, benutzen kann!
Variablen:
HX,HY: Koordinaten des Helden
hX,hY: Scene des Helden
B: Breite der Map (in Feldern)
H: Höhe der Map
SX,SY: Koordinaten von Scene 0,0, wird im Script ausgerechnet
BX,BY: "Koordinaten" des Bildes
bX,bY: Scene des Bildes, also das gewünschte Ergebnis
SX=HX-(hX/16)
SY=HY-(hY/16)
BX=B/2
BY=H/2
bX=(BX-SX)*16
bY=(BY-SY)*16
Zusammengepackt also:
bX=8B-16HX-hX
bY=8H-16HY-hY
Müsste so funzen, muss angewendet werden wenn der Held die Map betreten hat, funzt für jede Position des Heldens, habs aber net getestet, testes lieber ma selbst
Btw:
"Lichteffekte werden dieser Tage ja immer wichtiger, und auch wenn man immer wieder liest das sogenannte "Lightmaps" keineswegs zwingend notwendig sind, um ein Spiel spielbar zu machen werden oft kritische Stimmen laut, wenn man einen Screen ohne Lichteffekt (von jetzt an von mir LE genannt, muss ich weniger schreiben...) zur schau stellt."
<<< es wird zwar Kritik laut aber net von Profis sondern von Leuten, die selbst Anfänger sind.
Lightmaps sind ne ganz nette Spielerei und können die Atmosphäre unterstützen (aber auch zerstören, nicht jeder ist in Lightmaps so gut wie Grandy und wers net kann, lässts lieber) aber essentiell sind die Dinger absolut net, da ist die Wahl und Editierung des Chipsets, die Musik, die Gegner etc alles viiiiiel Wichtiger
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.