PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Lichtefeckte auf großen Maps



Dr.Brain
26.05.2004, 18:08
Ich hab wie immer an meinem Maker experimentiert,
und wollte mal ausprobieren, ob man auf einer mal angenommen
50*50Map Lichteffeckte, wie das Leuchten einer Laterne
per Pic anzeigen kann. Nun bin ich mir recht sicher, dass
es von der Position, an der man die Map betritt liegt, wo dann
das Pic ist. Muss man dann um solche Effeckte zu haben immer
20*15 Maps machen? Ist das sinnvoll?
Gibt es ne andere Möglichkeit???
Fragen über Fragen*g*

TheByteRaper
26.05.2004, 18:20
Also zuerst heisst das "LichteffeKte" :D

Dann:
50x50? Jein.
Ja, weil es möglich WÄRE.
Nein, weil es schwer ist.
Zudem denke ich, du müsstest eine gewisse Map-Proportion beibehalten, wie 1:3/4.

Das Problem liegt darin, dass du bei einer grösseren Map als 40x30 mehrere Bilder intelligent aneinanderhängen müsstest, und für diese Methode müsstest du einen Algorithmus finden, der das macht.

40x30 Maximum deswegen, weil auf eine 40x30 Map genau ein 640x480 Bild passt, was logischerweise die Maximalgrösse für ein importierbares Picture ist.

Sinnvoll: Najo.... klar warum nicht? Is aber Heidenarbeit -_-
Andere Möglichkeit? Als was? 20x15? Ja, 40x30 (leicht), aber auch grösser, aber nicht mehr soooo leicht :|

Dr.Brain
26.05.2004, 18:25
cool thx für die erklärung!
*vertippt sich herr ByteRaper nie?*
ich werds lassen...es wäre also sinnvoller
(wenn überhaupt)20*15 maps zu nehmen, da man da immer
die gleichen positionen hat...

Kelven
26.05.2004, 18:45
Soweit ich weiß hat Gecki in einer Makersmind aber beschrieben wie man auch größere Pictures importieren kann. Das einzige Problem bleibt dann das Positionieren der Pictures. Ich habs noch nie probiert, müßte aber mit der bekannten Technik "Um-Event-zentrieren" klappen.

Leo Norice
26.05.2004, 20:24
das is net schwer. das kann man auch 50x50 maps machen.
musst aber panoramas mit verwenden.

Aurae
26.05.2004, 20:40
@leo: Du bist lustig. Panoramas sieht man nur, wenn der letzte Chip des Lower Layers eingestellt wurde. Ansonsten bleiben sie unsichtbar.

@dr brain: Schau einfach in einer der Makersmind-Ausgaben nach. Da ist das mit Panoramas und Pictures in Übergröße beschrieben.

Dhan
26.05.2004, 21:23
Öhm... eine Strassenlaterne is doch recht klein... warum setzt du an ihre Spitze net einfach ein PP-Event, das alle 0,0s seine Scene-Werte speichert und an diese Posi einen Lichtschein setzt?

Aurae
26.05.2004, 21:25
Tjo, wahrscheinlich deswegen, weil er nicht solche Lightmaps haben will, die einfach nur einen Kreis darstellen, sondern sich weich abzeichnen, wenn du verstehst was ich meine. Wenn nicht, ist das natürlich die Lösung. =)

Leo Norice
26.05.2004, 21:59
Original geschrieben von Aurae
@leo: Du bist lustig. Panoramas sieht man nur, wenn der letzte Chip des Lower Layers eingestellt wurde. Ansonsten bleiben sie unsichtbar.

@dr brain: Schau einfach in einer der Makersmind-Ausgaben nach. Da ist das mit Panoramas und Pictures in Übergröße beschrieben.

haha. mein gott. ja ich weiß wie lustig ich bin.
sach mal, siehst du noch durch?? ich habs hingekriegt. tut mir leid wenn du nicht fähig bist so etwas zu verstehen.

Dr.Brain
26.05.2004, 23:37
Leutz bitte ein gehobenes niveau und nich eh du....
also mit dem pp event, dass mach ich nich, weil das meist bescheuert aussieht, und ich wollt auch wissen wie man das an sich mit den
Pics machen könnte.(kann mir jemand nen link zu dem pic um event zentrierenthread geben?)

Dhan
27.05.2004, 00:26
Also richtige Lightmap willst?

Na schön, dann mach einfach in die Mitte der ganzen Karte ein Event wie oben erklärt nur als Picture eben die ganze Lightmap
wenn du keine wirkliche Mitte hast weil die Felder eine gerade Anzahl sind, rechne den Scene Werten einfach +- 8 hinzu
wenn du eine so große Map hast, dass ein Picture net ausreicht, dann spielst du entweder mit dem RessHacker rum oder du lässt ein weiteres Picture anzeigen, einfach diesselben Koordinaten + die Hälfte der Breite bzw Höhe der beiden Bilder zusammen

so schwer war das doch nech

Dr.Brain
27.05.2004, 01:02
K!
Merci Dhan!
Ich werd das wohl erstmal proben....ob ichs einbau überleg ich mir
dann genau.

Leo Norice
27.05.2004, 01:07
sorry wegen vorhin. bloß wenn ich sage das ich es mit panoramas mache, kann ihn das doch egal sein WIE genau ich das anstelle.
dann brauch er auch net sagen, das geht net oder irgendwie so.

toll. da mir mein pc gerade abgekackt ist, kann ich den ganzen text nochmal schreiben
:rolleyes:

zeichnest deine map. ohne ereignise. machst aber soweit allet fertig.
gehst auf die 2te zoom stufe des makers, machst n screenshot (druck taste). öffnest in bildbearbeitungsprog. neuese bild, fügst den screen ein. schneidest die map haargenau aus. machst n neues bild.
rechnest deine map größe mal 16. bsp: mapgröße 50x50, bildgröße 800x800 pixel. einfügen. eventuell strecken. fügst blendflecken ein und beleuchtungseffekte. als panorama speichern.
im maker die fläche des chips für panorama als begehbar einstellen.
überziehst den kompletten boden mit den panorama. eventuell auch häuser wenn die zu hell hervostechen. diesa ber dann noch mit nichtbegehbaren events abdecken.

n schwarzes bild machen 320x240 pixel groß machen. hier der code:

show picture #...: .... (160,120) wait (transparenz: 80%)
loop (cycle)
move picture #...: (160,120), 0.6 sec., wait (tranzparenz 90%)
move picture #...: (160,120), 0.6 sec., wait (tranzparenz 80%)
break loop (break cycle)

end loop (end cycle)
-----------------------------

jetzt sieht es so aus al ob die lampen ständig aufleuchten.
je höher du die tranparenz machst. bsp: 60%, 90%, 60% desto häftiger leuchtet es auf. wirkt aber unrealistischer.
ich uploade auch gleich mal ne demo dazu. damit es besser sieht.

Manni
27.05.2004, 01:13
@ Leo Norice
Klar, so geht das auch, ist aber ein wenig umständlich. Ausserdem sind Bäume etc. unter denen der Held drunter hergeht so nicht machbar. Das ganze ist imo ein wenig zu umständlich... Mit Pictures geht das einfacher.

Machs am besten so, wie Dhan gesagt hat ^^

manni

Dr.Brain
27.05.2004, 17:06
@leo norice:
die Idee ist natürlich gut!
Aber es ist doch recht umständlich und die Lichteffeckte würden
unter dem Held "abtauchen"
Ich bin grad am probieren wie man die Bilder setzen muss.
Wenn ich fertig bin poste ich das ma hier.

Dr.Brain
27.05.2004, 17:55
*sorry wegen doppelpost*
ABER MIR IST ES GELUNGEN *halleluja*
Man macht mit dem Maker einen Screenshot der Map.
Schneidet sie zurecht(ganz genau) und speichert sie
als Png. Dann nimmt man ein Bildbearbeitungsprog.
Und macht ne neue Ebene. Diese hat die Deckkraft 30
(Damit man sehen kann wo die Effeckte hin sollen.)
Man macht sich seine Effeckte(oder wie ich nur einen und kopiert den)
und speichert das bild wieder.(Die Effeckt ebene muss beim speichern
100%deckkraft haben) dann umgeht man die max pixel zahl wie in der mm
erklärt und importiert das Bild.
Nun muss man sich den Mittelpunkt der Map suchen!
Wenn alles stimmt probiert man die Sache mal aus indem
Man das bild Standartmäßig anzeigen lässt (nur mit move with map)
Oft muss man die Lichteffeckte noch ein wenig anpassen da sie nicht
auf den Pixel genau sitzen.
So weit so gut, aber wenn ich jetzt aus einem Haus komme geht das doch nicht oder? DOCH!
Bei jedem Teleport muss hinein, dass der Held ganz kurz in die
Mitte der Map teleportiert wird(screentone=0) und dann an den
bestimmungsort. Während er in der Mitte ist wird das Bild aufgerufen.
Tada es geht! Wenn man nun wie ich auch noch einen Tag-Nacht
wechsel benutzt muss man wenn es nacht wird den screen kurz
dunkel werden lassen, den Held in die Mitte beamen und das Bild
anzeigen.(Davor wird die Position gespeichert) Dann recall to saved position und fertig.

*ins spiel einbauend
Dr.Brain

Kyuu
27.05.2004, 17:58
Original geschrieben von Leo Norice
sorry wegen vorhin. bloß wenn ich sage das ich es mit panoramas mache, kann ihn das doch egal sein WIE genau ich das anstelle.
dann brauch er auch net sagen, das geht net oder irgendwie so.

toll. da mir mein pc gerade abgekackt ist, kann ich den ganzen text nochmal schreiben
:rolleyes:

zeichnest deine map. ohne ereignise. machst aber soweit allet fertig.
gehst auf die 2te zoom stufe des makers, machst n screenshot (druck taste). öffnest in bildbearbeitungsprog. neuese bild, fügst den screen ein. schneidest die map haargenau aus. machst n neues bild.
rechnest deine map größe mal 16. bsp: mapgröße 50x50, bildgröße 800x800 pixel. einfügen. eventuell strecken. fügst blendflecken ein und beleuchtungseffekte. als panorama speichern.
im maker die fläche des chips für panorama als begehbar einstellen.
überziehst den kompletten boden mit den panorama. eventuell auch häuser wenn die zu hell hervostechen. diesa ber dann noch mit nichtbegehbaren events abdecken.

n schwarzes bild machen 320x240 pixel groß machen. hier der code:

show picture #...: .... (160,120) wait (transparenz: 80%)
loop (cycle)
move picture #...: (160,120), 0.6 sec., wait (tranzparenz 90%)
move picture #...: (160,120), 0.6 sec., wait (tranzparenz 80%)
break loop (break cycle)

end loop (end cycle)
-----------------------------

jetzt sieht es so aus al ob die lampen ständig aufleuchten.
je höher du die tranparenz machst. bsp: 60%, 90%, 60% desto häftiger leuchtet es auf. wirkt aber unrealistischer.
ich uploade auch gleich mal ne demo dazu. damit es besser sieht.

Mal davon abgesehen, dass deine Methode sehr umständlich ist, was zum Teufel soll der Loop bewirken, du brichst ihn ja eh gleich ab?

Leo Norice
27.05.2004, 18:57
Original geschrieben von Chingachgook
Mal davon abgesehen, dass deine Methode sehr umständlich ist, was zum Teufel soll der Loop bewirken, du brichst ihn ja eh gleich ab?

ohne funzt net. mehr kann ich net sagen.

Wischmop
27.05.2004, 19:00
Und wie schon am Anfang gesagt wurde, grösser als 640x480 gehts auch nicht, da das die maximale Größe eines Bildes ist, das man importieren kann.

Aber es geht auch eigentlich anders, nämlich indem man in ein Parallel Process zwei, drei Abläufe mit move-pictures macht. Dazwischen immer schön abgestimmt ein Wait rein, und dann geht das wieder von vorne los. Sieht genauso stimmig aus. :)

Leo Norice
27.05.2004, 19:23
das mit nur mit den pics versteh ich net ganz.
wenn man sich bewegt, kommt doch das pic mit, oder nicht?
und wenn die map zu groß ist, wie soll man das mit den zweiten pic machen?

Arlownay
27.05.2004, 19:28
Wenn du das Bild nicht auf den Held, sondern über die koordinaten anzeigst dann bewegts sich nicht...

Kyuu
27.05.2004, 19:29
Original geschrieben von Leo Norice
das mit nur mit den pics versteh ich net ganz.
wenn man sich bewegt, kommt doch das pic mit, oder nicht?
und wenn die map zu groß ist, wie soll man das mit den zweiten pic machen?

Bei "Show Picture" ein Häckchen bei "Move with Map", oder wie es in deiner Version heißt, machen. Dann bleibt das Bild immer auf den angegebenen Koordinaten.


ohne funzt net. mehr kann ich net sagen.

Sehr seltsam. O_o
Ein Loop macht im Grunde nichts anderes, als den Inhalt permanent bis zum Abbruch zu wiederholen. Wenn du aber ein Loop in ein PP- bzw. Autostart-Event einbaust, und es sofort abbrichst nützt es dir eigentlich sogut wie nichts.


Wenn du das Bild nicht auf den Held, sondern über die koordinaten anzeigst dann bewegts sich nicht...

So ein Blödsinn. o.o

Leo Norice
27.05.2004, 19:33
Original geschrieben von Chingachgook
Bei "Show Picture" ein Häckchen bei "Move with Map", oder wie es in deiner Version heißt. Dann bleibt das Bild immer auf den angegebenen Koordinaten.



Sehr seltsam. O_o
Ein Loop macht im Grunde nichts anderes, als den Inhalt permanent bis zum Abbruch zu wiederholen. Wenn du aber ein Loop in ein PP- bzw. Autostart-Event einbaust, und es sofort abbrichst nützt es dir eigentlich sogut wie nichts.



So ein Blödsinn. o.o

und wenn man denn n move befehl bei den pic einbaut, so das es blinke soll, bewegt es sich doch wieder weg oder nicht?
bsp: hero steht in der mitte einer stadt. neben einer laterne.
das pic wird bei 160,120 angezeigt. dann baut man noch ein move pic event ein, damit sich das ganze noch ein bisschen bewegt und leuchtet.
move pic #... 160,120. aber wenn der hero dann wo anders ist, ist die 160,120 genau beim hero und das pic stimmt dann doch net mehr überein.
oder seh ich das falsch?

Manni
27.05.2004, 19:37
Deswegen zeigt man das Bild ja mit den Scene X/Y an. Die passen sich der Position des Helden an. Dann wird das Bild größtenteils richtig angezeigt. Man muss nur evtl. die Position statisch ein wenig korrigieren.

Manni

Leo Norice
27.05.2004, 19:41
Original geschrieben von Manni_the_Dark
Deswegen zeigt man das Bild ja mit den Scene X/Y an. Die passen sich der Position des Helden an. Dann wird das Bild größtenteils richtig angezeigt. Man muss nur evtl. die Position statisch ein wenig korrigieren.

Manni

und wie mache ich, das die bilder sich der x/y scene anpassen?
ja, von variablen aus die koordinaten. aber wessen koordinaten soll ich darin speichern? die vom helden? bloß dann zeigt er das pic doch immer genau über mir an. kann mir das mal bitte jemand ganz genau erklären?

Arlownay
27.05.2004, 19:52
Du speicherst vorher die Koordinaten der position wo du das Bild haben willst in Variablen und über diesen zeigst dus dann an.
Musst halt etwas ausporbieren, bis es stimmt.

Kyuu
27.05.2004, 20:00
Original geschrieben von Arlownay
Du speicherst vorher die Koordinaten der position wo du das Bild haben willst in Variablen und über diesen zeigst dus dann an.
Musst halt etwas ausporbieren, bis es stimmt.

Das würde nicht gehen, weil sich die Koordinatentabelle immer nach der momentanen Position des Helden richtet.

@Leo:

Mir ist gerade eingefallen wie man das lösen könnte, ich versuche es mal in einem Skript umzusetzen.

Arlownay
27.05.2004, 20:12
Das versteh ich jetzt nicht. Wieso soll das nicht gehen? Ich kann doch die Koordinaten eines ereignis in Variabeln speichern??

http://www.ystart.net/upload/20040527/1085659600.png


Und dann kann ich das Bild doch auch dort anzeigen...
Bitte klär mich auf, wieso das nicht gehen soll...

EDIT:

http://www.multimediaxis.de/images/smilies/old/sm_15.gif ich bin doof.
Habs ausprobiert und das geht tatsächlich nicht. Aber kann mir bitte jemand erklären weshalb das net geht?


EDIT 2:

Habs im 2003 ausprobiert, da gehts!

Frägelschö
27.05.2004, 22:20
Die X/Y-Koordinaten werden in Mapfeldern von oben links in der Map an gezählt.
Die Koordinaten für das Bild aber sind in Pixel vom oberen linken Rand des Bildschirmausschnitts.
Wenn du Szene X und Szene Y in die Variablen speicherst, müsste es gehen.

Kyuu
27.05.2004, 22:46
So, der Algorythmus funktioniert zwar, da der Maker aber die Koordinaten des Helden nur nach Ende der Animation, also erst wenn der Held auf dem nächsten Chip steht, verändert, kommt ein leichtes Ruckeln.

Naja, wer es sich anschauen will, hier (http://people.freenet.de/Ultimagames/Blah.rar).

Das Skript macht im Grunde nichts anderes, als anhand von den momentanen SceneX/Y, HeroPosX/Y und den festgelegten Koordinaten des anzuzeigenden Bildes, die tatsächlichen Koordinaten auszurechnen.

EDIT: Am besten man macht es so, wie unten erwähnt. >__>

Also ein Event dort erstellen, wo auf der Map der Mittelpunkt des Pictures sein soll. Dann die SceneX/Y des Events in Variablen abspeichern und per Move Picture mit einer Movement Time von 0,0 an diese Koordinaten verschieben.

Manni
28.05.2004, 00:34
So schwer ist das garnich. Man macht einen Event da, wo der Mittelpunkt des Pictures sein soll. Dann speichert man die Scene X/Y in Variabeln und zeigt das Bild bei diesen Koordinaten an. Das müsste eigentlich gehen :confused:

Manni

Dr.Brain
02.06.2004, 14:59
Moin!
Ich war im Urlaub und melde mich mit neuen Ergebnissen zurück*g*
Es ist tatsächlich möglich!
Meine erste version geht nich, weil wenn man gotomemorized
place nimmt das bild sich verschiebt.
Ich will hier nicht den ganzen (etwas komplexen) weg erklären
wie geneau das jetzt geht, ich sag nur,
man muss vom mittelpunkt ausgehend errechnen wo
das bild sein muss wenn der held da und dort ist.
Ein Bild größer zu machen alsder Maker es erlaubt ist doch ein
Kinderspiel!
Ich hab bereits das System eingebaut, und es sieht fantastisch aus!
Damit mir auch alle glauben hier ein Bild
aus meiner neuesten Dorfkreation mit lichteffeckt(map:50*50)

http://www.ystart.net/upload/20040602/1086159551.png

Auf Bald
Dr.Brain

Wischmop
02.06.2004, 16:17
Deckt die Lightmap die gesamte Map, also die ganzen 50 x 50 Tiles ab? Ich kann mir das einfach nicht vorstellen, das wäre größer als 640x480, und das lässt der Maker nicht importieren ?__?
Klär mal auf, bitte. ^^

Dr.Brain
02.06.2004, 17:50
Ja sie deckt alles ab!
Man importiert auch nich das Bild so wie es is,
man kopiert es und verkleinert es auf sagen wir mal 30*30.
Dann importiert man es mit einer sinnlosen hintergrungfarbe(die im
original nicht vorhanden ist) nun tauscht man das kleine bild, das nun
im projekt is aus und hat nun das 800*800 bild drinnen.
Wenn die Farbe richtig runtergeschraubt is(256Farben) zeigt der Maker
auch dieses große Bild an.

Wischmop
02.06.2004, 17:59
Dann isses aber nicht richtig importiert, und wird bei anderen, die das dann spielen, nicht richtig angezeigt. So hört sich das jedenfalls für mich an o0° Hast du schon ausprobiert, ob andere das spielen können?

Aber die Idee ist nicht schlecht, da man die Importfunktion bescheisst, und somit diese "Grenze" umgeht. Naja, wie gesagt..hast du schon ausprobiert, ob andere keine Fehlermeldung a la "Couldn't find ... " bekommen?

Kelven
02.06.2004, 18:34
Das ist ja genau die Methode die Gecki wie gesagt in der MM beschrieben hat. Soweit ich weiß soll sie funktionieren. Die Probleme beim Importieren entstehen ja nur dann wenn man etwas nicht importiert weil die Ressourcen dann nicht richtig in der Datenbank registriert werden.

Aurae
02.06.2004, 21:17
Genauso isses. Ich habs auch schonmal ausprobiert, mit den übergroßen Pics mit dem Tut ausser MM. HAt wunderbar gefunzt. Und das mit dem an-der-richtigen-Stelle-anzeigen-lassen ist auch nicht so schwer. ^^

Dr.Brain
02.06.2004, 22:38
türlich geht dat!
man darf nur keine gamedisk machen.
(Normal zippen is eh besser)
@aurae:
Du hast ganz recht!
Das mit dem Anzeigen is schon ne arbeit aber machbar!