Brauche Hilfe beim Terrainerstellen

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

key_dex

Betreff: Brauche Hilfe beim Terrainerstellen

BeitragMi, Jul 06, 2005 10:05
Antworten mit Zitat
Benutzer-Profile anzeigen
ICh will ein Terrain erstellen und dabei klappt etwas nicht:

Code: [AUSKLAPPEN]

Include "data/sub.bb"

Graphics3D 1024,768,32,2
SetBuffer BackBuffer()
HidePointer

CreateTerrainn()

  player.Player = CreatePlayer(0, 20, -30) ;Zugriff auf auf Objekt Player mittels Containervariable
                                 ;(hier Local)
  camera.ChaseCam = CreateChaseCam( player\entity )
 
   Collisions TYPE_PLAYER, TYPE_SCENERY, 2, 3
  Collisions TYPE_PLAYER, TYPE_PLANE, 2, 3

cube = CreateCube()
PositionEntity cube, 20, 0, 4
ScaleEntity cube,4,30,5
EntityAlpha cube,0.5
EntityType cube, 11
EntityRadius cube,1

light = CreateLight(1)




While Not KeyHit(1)





UpdateGame() 
UpdateWorld()
RenderWorld()

Flip
Wend
End

Code: [AUSKLAPPEN]

;Kollisionstypen
Const TYPE_PLAYER = 1, TYPE_CAM = 2, TYPE_SCENERY = 10, TYPE_PLANE = 11, TYPE_TERRAIN = 12

;Typendeklaration
Type Player ;Typekollektion wird definiert
  Field entity, model ;Variablen werden definert
  Field player_y#, roll# ;Variablen mit Variablennamen('#' -> float)   
End Type

Type ChaseCam
   Field entity, camera, target, heading
End Type

Global haus, plane, sndPlayerDie, box
;-------------------------------------------------------------------------------------------------------

Function CreateTerrainn()
  ;Lichtobjekt
  licht = CreateLight(3)
  LightColor licht, 251, 55, 255

  ;Boden
  plane = CreatePlane()
  plane_tex = LoadTexture("data/tex/boden_tex.jpg")
  ScaleTexture plane_tex, 5, 5

  EntityTexture plane, plane_tex, 0, 0
  EntityType plane, TYPE_PLANE
  EntityRadius plane, 1

 

  ;Haus
  haus = LoadMesh("data/3ds/haus.3ds")
  haus_tex = LoadTexture("data/tex/haus_tex.jpg", 256)
  ScaleTexture haus_tex, 0.4, 0.4
  EntityTexture haus, haus_tex
  ScaleEntity haus, 0.05, 0.05, 0.05
  PositionEntity haus, 0, 5, 20
  EntityType haus, TYPE_SCENERY

  box = CreateCube()
  PositionEntity box, 3, 2, 25
  EntityType box, TYPE_SCENERY
  EntityRadius box, 3

;Hochhaus


haus2 = LoadMesh("das.3ds")
  haus2_tex = LoadTexture("fenster geil.jpg", 256)
  ;ScaleTexture haus_tex2, 0.4, 0.4
  EntityTexture haus2, haus2_tex
  ScaleEntity haus2, 0.05, 0.05, 0.05
  PositionEntity haus2, 0, 5, 20
  EntityType haus2, TYPE_SCENERY


  ;Musik
    ;sndPlayerDie=LoadSound("data/music.mp2")
    ;PlaySound sndPlayerDie

End Function

Function CreatePlayer.Player( x#, y#, z# )
  p.Player = New Player;aus Variable p wird ein Objekt Player erstellt, mit allen Eigenschaften des
  ;Typ 'Player'
  p\entity = CreatePivot()
  p\model = LoadMesh("data/3ds/player.3ds")
  ScaleEntity p\model, 0.006, 0.006, 0.006
  p\entity = p\model
  p\player_y = y
  EntityType p\entity, TYPE_PLAYER
  EntityRadius p\entity, 2.2 ;Kollisionsradius
  PositionEntity p\entity, x, y, z ;Variablen von Anfang der Funktion - ohne Typenzeichen #(Floatwert)
  Return p
End Function


Function UpdatePlayer( p.Player )
 
   ; Smoothing
   x_speed# = (MouseXSpeed() - x_speed) / 20 + x_speed
   TurnEntity p\entity, 0, -x_speed, 0, 0
      
   ; Lock the mouse in the middle of the screen so that MouseX/YSpeed() work properly
   MoveMouse GraphicsWidth()/2,GraphicsHeight()/2

  If KeyDown(17)      ;vorwärts
   MoveEntity p\entity, 0, 0, 0.3
  Else If KeyDown(31)   ;rückwärts
   MoveEntity p\entity, 0, 0, -0.15
  EndIf

  ty# = EntityY(p\entity)
  y_vel# = (ty - p\player_y)   
  p\player_y = ty
     
  If KeyHit(57)   ;Wenn Sprung?
   If EntityY(p\entity) > 2.3 Then ;Sprunghöhe nur bis zu einem bestimmten Punkt
     y_vel = 0
    Else
     y_vel = 1;Sprunghöhe
   End If
  Else
   y_vel = y_vel - 0.15;Fallgeschwindigkeit
  EndIf
  TranslateEntity p\entity, 0, y_vel, 0;relative Bewegung vom Spieler - also nicht vom "Nullpunkt"
End Function



Function CreateChaseCam.ChaseCam( entity )
  c.ChaseCam = New ChaseCam
  c\entity = entity
  c\camera = CreateCamera()
   
  c\target = CreatePivot( entity )
  PositionEntity c\target, 0, 2, 0
  EntityType c\target, TYPE_TARGET;Kollisionstype
   
  c\heading=CreatePivot( entity )
  PositionEntity c\heading, 0, 200, 0;"Guckrichtung" des Spielers
  Return c
End Function

Function UpdateChaseCam( c.ChaseCam )

   
   dx# = EntityX(c\target, True) - EntityX(c\camera, True)
   dy# = EntityY(c\target, True) - EntityY(c\camera, True)
   dz# = EntityZ(c\target, True) - EntityZ(c\camera, True)
   
   TranslateEntity c\camera, dx * 0.1, dy * 0.1, dz * 0.1;Geschwindigkeit der Kamera bei schwenken
   ;und geradeaus/rückwärts laufen
   
   PointEntity c\camera, c\heading
      
   PositionEntity c\target, 0, 0, 0
   ResetEntity c\target
   PositionEntity c\target, 0, 200, -400;Kameraposition, die auf den Spieler ausgerichtet ist
End Function


Function UpdateGame()
  For a.Player = Each Player
   UpdatePlayer( a )
  Next

  For b.ChaseCam = Each ChaseCam
    UpdateChaseCam( b )
  Next
End Function




In der Function CreateTerrainn() beim Boden soll das Terrain rein.
 

E. Urbach

ehemals "Basicprogger"

BeitragMi, Jul 06, 2005 13:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab mir den Code nocht nicht angesehen, aber...:

Was genau funktioniert denn nicht?

Edit: Ach so, CreateTerrainn ist ne Funktion!
*Das kommt davon, wenn man sich den Code nicht anguckt. sry*

Edit 2:
terrain=CreateTerrain(size)
oder
terrain=LoadTerrain(heightmap$)
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik

Devils Child

BeitragMi, Jul 06, 2005 14:21
Antworten mit Zitat
Benutzer-Profile anzeigen
ich glaube eher, dass er an inaries wettbewerb teilnehmen will Wink
https://www.blitzforum.de/view...ight=kekse
*X-Ware Member*

Mission to Hell[Ego-Shooter]
Hier Vollversion runterladen:
http://patrick-sch.de/spiele/m...ersion.zip

ich antworte auf jede PN

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group