Anfang

 

2

 

Ich kenne bisher zwei Möglichkeiten Wasser zu simulieren. Aus WMB-Objekten und aus Sprites. Es ist nicht möglich ein primitives Objekt ins WED zu setzen und bei Eigenschaften (Properties) das transparent Flag zu setzen. Aber so geht's. Erstelle das Wasserobjekt in deinem Level in gewünschter Größe und Lage aus primitiv Objekten. Gib dem Objekt eine Wassertexture. Lösche jetzt alles außer dem Wasserobjekt. Nun noch Builden als "Entity Map" und abspeichern unter einem anderen Namen. Anderer Name ist wichtig sonst überschreibt ihr euer Level. Anschliessend das Level wieder laden. Nun unter Mapentities das Wasserobjekt wählen. Es erscheint genau am richtigen Platz und in passender Größe. Jetzt kann der Wasserentity als Eigenschaft das transparent Flag zugewiesen werden. In meinem Terrainlevel verwende ich allerdings die andere Methode, Wassersprites. Ich finde das sieht besser aus im Terrain.

 

Das ist meine Wassertexture. Erstellt mit Bryce. Habe die Texture verschoben und dieses dann animiert. Die einzelnen Bilder wurden dann mit sTile99 (Download siehe Linkseite) zu Tiles, das heißt kachelbar. Besser geht das natürlich mit Photoshop7, I-Tex u.a. sTile99 ist dafür Freeware. Jedes Bild muß gleich groß sein. Hier 128x128 Pixel. Dann alle Bilder nacheinander in einer Datei abspeichern. Macht 768x128 Pixel. Der Name der Datei muß mit einem "+" und der Anzahl der enthaltenen Bilder hier "6" enden. z.B. wasser+6.pcx.

 

 

Dieses Wassersprite habe ich dann in WED wie Fliesen ins Level gelegt. Ich hätte das Sprite auch noch mehr skalieren können aber dann wären die Einzelheiten der Wassertextur nicht mehr zur Geltung gekommen. Außerdem eröffnet es mir die Möglichkeit verschiedene Wassertexturen einzusetzen. z.B. könnte ich eine Reihe der Spritefliesen nach dem Strand ausrichten und eine Gischtanimation erstellen.

 

 

Abschliessend habe ich eine Action geschrieben, die für die Animation und den Alphawert des Wassers zuständig ist. Dadurch ist das Wasser genau richtig für Meerwasser. Nicht zu durchscheinend und kräftiges Blau. Wäre das Wasser in einem Innenlevel könnte die Action dahingehend verändert werden das mit Lightrange und der Angabe von grünem oder blauen Licht ein schön leuchtendes Wasser erzeugt wird. Periodisches ab -und zunehmen des Ambientwertes verstärken den Eindruck noch.

 

action move_wasser {

Diese Aktion den Wassersprites in WED zuordnen

          my.transparent = on;

mache Sprite durchsichtig

          my.alpha = 70;

Grad der Transparenz

          WHILE (1) {

Loop beginnen und ständig wiederholen

                my.frame += 1*TIME;

Bildframe um 1 * Time (1/16s) erhöhen

                if (my.frame > 6)  {

6 Frames enthält das Wassersprite. Bedingung wenn Frame größer als 6 dann

                    my.frame = 1;   }

wechsle zurück zum ersten Frame

          wait (2);     }

warte 2 Framezyklen, dann beginne Loop von vorn

}

 

 

Die Wassersprites im Level.

 

 

Oben kurz angesprochen und hier zu sehen. Das Meer besteht aus nichttransparenten Sprites. Zwei verschiedene, animierte Wassertexturen. Eine für das Meer und eine soll die Gischt simulieren.

 

 

2