Z#=TERRAINZ# (Terrain, X#, Y#, Z#)


BeschreibungBlitz3D
Die Funktion TERRAINZ liefert die interpolierte Z-Koordinate auf einem Terrain. Dies ist meistens nur dann sinnvoll, wenn das Terrain gedreht ist.


Parameter
Terrain=Identität eines Terrains
X=Globale Weltkoordinate X
Y=Globale Weltkoordinate Y
Z=Globale Weltkoordinate Z


Rückgabewert
Es wird die interpolierte Z-Koordinate des Terrains zurückgeliefert:



Beispiel
Dieses Programm zeigt, dass Unterschiede zwischen ENTITYXYZ und TERRAINXYZ bestehen:

GRAPHICS3D 640,480
SETBUFFER BACKBUFFER()
camera=CREATECAMERA()
POSITIONENTITY camera,20,1,20
light=CREATELIGHT()
ROTATEENTITY light,90,0,0

terrain=LOADTERRAIN("c:\001.bmp")
SCALEENTITY terrain,1,50,1
ROTATEENTITY terrain,10,10,10
grass_tex=LOADTEXTURE("c:\002.bmp")
ENTITYTEXTURE terrain,grass_tex,0,1
TERRAINDETAIL terrain,4000,TRUE

WHILE NOT KEYDOWN(1)
   IF KEYDOWN(203)=TRUE THEN x#=x#-0.1
   IF KEYDOWN(205)=TRUE THEN x#=x#+0.1
   IF KEYDOWN(208)=TRUE THEN y#=y#-0.1
   IF KEYDOWN(200)=TRUE THEN y#=y#+0.1
   IF KEYDOWN(44)=TRUE THEN z#=z#-0.1
   IF KEYDOWN(30)=TRUE THEN z#=z#+0.1
   IF KEYDOWN(205)=TRUE THEN TURNENTITY camera,0,-1,0
   IF KEYDOWN(203)=TRUE THEN TURNENTITY camera,0,1,0
   IF KEYDOWN(208)=TRUE THEN MOVEENTITY camera,0,0,-0.1
   IF KEYDOWN(200)=TRUE THEN MOVEENTITY camera,0,0,0.1
   x#=ENTITYX(camera)
   y#=ENTITYY(camera)
   z#=ENTITYZ(camera)
   terra_y#=TERRAINY(terrain,x#,y#,z#)+5
   POSITIONENTITY camera,x#,terra_y#,z#
   x#=ENTITYX(camera)
   y#=ENTITYY(camera)
   z#=ENTITYZ(camera)
   RENDERWORLD
   TEXT 0,0,"Benutze Cursortasten"
   TEXT 0,40,"X:"+x#
   TEXT 0,60,"Y:"+y#
   TEXT 0,80,"Z:"+z#
   TEXT 150,40,"TERRAINX:"+TERRAINX(terrain,x#,y#,z#)
   TEXT 150,60,"TERRAINY:"+TERRAINY(terrain,x#,y#,z#)
   TEXT 150,80,"TERRAINZ:"+TERRAINZ(terrain,x#,y#,z#)
   FLIP
WEND
END


Siehe auch
TERRAINX, TERRAINY