wasser wie in wow

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

lukasimgruet

Betreff: wasser wie in wow

BeitragSo, Jan 31, 2010 13:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie schaffe ich es das mein Wasser wie in WoW aussieht?

Das besteht ja nir aus einer Fläche und Sprites.
Oder kann ich ein gif. Bild von animiertem Wasser auf die Plane einfügen?

Megamag

BeitragSo, Jan 31, 2010 13:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Könntest du das Wasser aus WoW einmal für nicht-WoW-Spieler beschreiben? Smile

Xeres

Moderator

BeitragSo, Jan 31, 2010 13:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Gif Animationen kann man so nicht in B3D benutzen. Du kannst sie aber zu einem Strip umwandeln und LoadAnimTexture verwenden.

Schau mal in den Showcase: https://www.blitzforum.de/showcase/344/
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

lukasimgruet

BeitragSo, Jan 31, 2010 13:38
Antworten mit Zitat
Benutzer-Profile anzeigen
also das wasser sieht so aus:
http://p3.focus.de/img/gen/q/S..._467xA.jpg

Megamag

BeitragSo, Jan 31, 2010 13:40
Antworten mit Zitat
Benutzer-Profile anzeigen
DU könntest ja auch MultiTexturing benutzen und jede Textur dann etwas anders bewegen, damit kann man ganz schöne Wellen-Effekte machen. Und falls du auch noch so eine Brandung haben möchtest, so kannst du dies ganz einfach mit Sprites erreichen.
 

lukasimgruet

BeitragSo, Jan 31, 2010 13:41
Antworten mit Zitat
Benutzer-Profile anzeigen
gibt es ein Beispiel dafür?

Nicdel

BeitragSo, Jan 31, 2010 13:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Es geht ganz leicht, du musst nur B3D lernen. Hilfreich: EntityAlpha, EntityTexture, LoadAnimTexture
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7
 

lukasimgruet

BeitragSo, Jan 31, 2010 13:50
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, da bin ich gerade dran. Ich muss also viele einzelne Bilder nebeneinander tun?

Abrexxes

BeitragSo, Jan 31, 2010 14:14
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzHilfe sagt dazu :

Zitat:
Diese Anweisung lädt eine animierte Textur. Es funktioniert eigentlich wie LoadTexture, nur enthält dieses Bild gleich mehrere kleine Texturteile nebeneinander. Jede Textur hat die gleiche Breite und Höhe. Es dürfen auch keine Lücken zwischen den Bildern vorkommen. Wenn man die Animation mit EntityTexture zuweist, dann muss man das Animation-Frame angeben.


Du solltest schon Links auch lesen wenn man sich schon die Mühe macht sie dir zu posten.

cu
 

lukasimgruet

BeitragSo, Jan 31, 2010 14:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Es geht bei mir net kann mir bitte jemand helfen?

Code: [AUSKLAPPEN]

water=CreatePlane()
watertex = LoadAnimTexture("wasser.jpg", 1, 1024, 128, 1, 8)
EntityTexture water, watertex
EntityShininess water,1
MoveEntity water,0,265,0
EntityAlpha water,0.8


Es kommt die Fehlermeldung das die Textur nicht existiert. Sie ist aber im gleichen Verzeichnis.

Nicdel

BeitragSo, Jan 31, 2010 14:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Sicher, dass jeder Frame (jedes Einzelbild) eine Größe von 1024 hat? Wohl eher 128, oder?
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7
 

lukasimgruet

BeitragSo, Jan 31, 2010 14:30
Antworten mit Zitat
Benutzer-Profile anzeigen
es wird nun zwar angezeigt aber nicht animiert Confused

Hier mal der ganze Code:
Code: [AUSKLAPPEN]

Graphics3D 1680,1050,32,1

SetBuffer BackBuffer()
Const Walk_1=1, Walk_2=2

terrain=LoadTerrain("Heightmap.jpg")
text1=LoadTexture ("colormap.png")
text2=LoadTexture ("mapt2.bmp")
EntityTexture terrain,text1,0,0
EntityTexture terrain,text2,0,1
TerrainDetail terrain,8000
ScaleEntity terrain,50,900,50
ScaleTexture text1,256,256
ScaleTexture text2,3,3
MoveEntity terrain,0,0,0
EntityType terrain, 1

water=CreatePlane()
watertex = LoadAnimTexture("wasser.jpg", 1, 128, 128, 0, 8)
EntityTexture water, watertex
EntityShininess water,1
MoveEntity water,0,265,0
EntityAlpha water,0.8


skytex = LoadTexture("sky2.jpg",1+8+16+32)
sky = CreateSphere(64)
FlipMesh sky
EntityFX sky,1+16
ScaleEntity sky,24000,18000,24000
EntityOrder sky,1000
EntityTexture sky,skytex
MoveEntity sky,5000,0,6000


cam = CreateCamera()
MoveEntity cam,0,300,0
CameraFogMode cam, 2
CameraRange cam,1,30000
CameraFogRange cam,100,6000
CameraFogColor cam,40,140,255
CameraClsColor cam,40,140,255
EntityType cam, 2
EntityRadius cam, 10, 10

light=CreateLight()
TurnEntity light,45,90,0



dwarf = LoadMD2("modelle/söldner.md2")
dwarf_tex = LoadTexture("texturen/söldner.tga")
EntityTexture dwarf, dwarf_tex
PositionEntity dwarf,4000,390,3500
EntityType dwarf,2
ScaleEntity dwarf,2,2,2
EntityRadius dwarf, 45

Collisions 2,1,2,2



While Not KeyHit(1)


RotateEntity cam,EntityPitch(cam)+MouseYSpeed(),EntityYaw(cam)-MouseXSpeed(),0

MoveMouse 512,384

 If KeyDown(32) MoveEntity cam,-50,0,0
   If KeyDown(17) MoveEntity cam,0,0,50
   If KeyDown(31) MoveEntity cam,0,50,0
   If KeyDown(30) MoveEntity cam,50,0,0

   If KeyDown(203) MoveEntity dwarf,-20,0,0
   If KeyDown(208) MoveEntity dwarf,0,0,20
   If KeyDown(200) MoveEntity dwarf,0,20,0
   If KeyDown(205) MoveEntity dwarf,20,0,0
TranslateEntity dwarf,0,-.35,0    ; schwerkraft

If KeyHit(57) = 1 Then
start = 3 - start
AnimateMD2 dwarf, 1, 0.1, 2, 40
EndIf

UpdateWorld()
RenderWorld()

Flip

Wend

ClearWorld




































Silver_Knee

BeitragSo, Jan 31, 2010 14:37
Antworten mit Zitat
Benutzer-Profile anzeigen
das musst du schon selbst übernehmen und alle zB 100 ms einen counter weiter laufen lassen kannst dir ja bom 3. BCC mein game Parcour angucken das macht genau das mit der Hintergrundtextur

faeX

BeitragSo, Jan 31, 2010 21:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich tippe ja bei dem WoW-Wasser eher auf Bumpmapping, aber das wäre jetzt wohl doch viel zu kompliziert. Je nachdem wieviele Einzelbilder deine Textur hat, kannst du ganz einfach eine Animation machen:

Code: [AUSKLAPPEN]

Const intMilliSecsPerFrame% = 100
Const intFrameCount% = 16 ; ANZAHL DER FRAMES EINSETZEN!!!
EntityTexture water, watertex, Int((MilliSecs()/intMilliSecsPerFrame) Mod intFrameCount)


"intMilliSecsPerFrame" definiert, wie lange ein Einzelbild angezeigt werden soll. Wink
Nun, wie funktioniert der Code?
Der sogenannte Index für ein Einzelbild bei einer animierten Textur startet bei 0 und endet bei der Anzahl der Einzelbilder minus 1. Bei 16 Einzelbilder wären also die Nummern (Index) von 0 bis 15.

Mit MilliSecs()/intMilliSecsPerFrame rastern wir die Zeit. Das heißt der Wert der rauskommt erhöht sich nicht mehr jede Millisekunde um 1, sondern alle 100 Millisekunden um 1, läuft also 100 mal so langsam. Damit jetzt aber nach 1,6 Sekunden der Wert bei 16 liegt (das würde ja einen Laufzeitfehler verursachen, das 16. Bild gibt es ja nicht) wird noch ein Mod 16 eingefügt. Modulo bedeutet "Rest" bei einer Division.

Ein paar Beispiele:

5 Mod 2 = 1
8 Mod 8 = 0
700 Mod 150 = 100
10 Mod 8 = 2

Ja, ich hatte ziemliche Langeweile, als ich dieses Beispiel geschrieben hab'... Und gib dir gefälligst Mühe, das zu verstehen! Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group