Hilfe

TerrainY

B3D

Aufruf

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

Parameter

Terrain Identität eines Terrains
X# Globale Weltkoordinate X
Y# Globale Weltkoordinate Y
Z# Globale Weltkoordinate Z


Rückgabewert

Es wird die interpolierte Y-Koordinate des Terrains zurückgeliefert.


Beschreibung

Die Funktion TerrainY liefert die interpolierte Y-Koordinate auf einem Terrain.

Ein Terrain hat oft große Höhenunterschiede. Wenn man die Höhe von einem bestimmten Punkt ermitteln will und ein Objekt entsprechend vertikal verschieben möchte, dann muss man die Y-Koordinate mit diesem Befehl ermitteln.


Beispiel

Dieses Programm zeigt, dass Unterschiede zwischen EntityXYZ und TerrainXYZ bestehen:

Dieses Programm erstellt ein Terrain. Mit einigen Tasten kann man sich über das Terrain bewegen und einige Effekte ausprobieren:

Graphics3D 640, 480
SetBuffer BackBuffer()
camera = CreateCamera()
PositionEntity camera, 1, 1, 1
light = CreateLight()
RotateEntity light, 90, 0, 0
terrain = LoadTerrain("media\001.bmp")
ScaleEntity terrain, 1, 50, 1
grass_tex = LoadTexture("media\002.bmp")
EntityTexture terrain, grass_tex, 0, 1
terra_detail = 4000
vertex_morph = True

While Not KeyDown(1)
   If KeyHit(57) = True Then vertex_morph = 1 - vertex_morph
   If KeyHit(28) Then terra_shad = 1 - terra_shad
   If KeyDown(2) Then terra_detail = terra_detail - 10
   If KeyDown(3) Then terra_detail = terra_detail + 10
   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
   TerrainDetail terrain, terra_detail, vertex_morph
   TerrainShading terrain, terra_shad
   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

Übersicht 3D Grafik Terrain