3D-Space-Game-007.bb


;------------------------------------------------------- ; ; 3D Space Game Tutorial ; ; (C) by Turgut Frank Temucin alias TFT ; ; Alle Rechte verbleiben beim Autor. Die Veröffentlich- ; ung außerhalb des BlitzForums ist nur mit Genehmigung ; gestattet. Der Source-Code ist Freeware und darf für den ; privaten Gebrauch frei verwendet werden. ; ;------------------------------------------------------- ; File: 3D-Space-Game-007 ; Date: 25.07.03 ;------------------------------------------------------- ; BB3D: 1.83 ;------------------------------------------------------- ; Mein dank an: Markus und HotBit ;------------------------------------------------------- ; ; Für die Ansicht bei der Darstellung von Objekten ist ; die CameraZoom- Einstellung. Für die einzelnen ; 3D Spiele sind unter Umständen unterschiedliche ; Einstellungen nötig. Man nennt das auch Fischaugen-korrektur. ; Der Befehl wird bei Kamera und Licht untergebracht. ; ; ------------------------------------------------------ ; ; Als erstes werden ein paar Konstanten definiert. Diese ; sind unveränderbar und immer Global. Const screen_x=640 Const screen_y=480 Const screen_m=2 ; Bildschirm Modus ; 2=Fenster 1=Fullscreen Const screen_t=16; 16 Bit oder 32 Bit Bildschirm ; Dann wird der Bildschirm geöffnet ; Graphics3D screen_x,screen_y,screen_t,screen_m ; Den Bildschirm öffnen SetBuffer BackBuffer() ; das DoubleBuffering aktivieren ; Ein Object, welches mit DOGA L1 erstellt wurde, wird geladen Global schiff=LoadMesh("schiff.x") ; Schiff-Object laden PositionEntity schiff,0,0,0 ; Position beliebig ; Danach die Kamera- und Licht-Einstellungen ; Global Cammera=CreateCamera(schiff) ; Ohne Kamera sieht man nichts ; und es wird an das Schiff angebunden CameraRange cammera,1,5000 ; Sichtweite der Kamera anpassen MoveEntity cammera,0,0,-4 ; Da die Kamera mitten im Schiff liegt, ; wird sie etwas nach hinten verschoben. ;******* ; ; Durch Einführung dieses Befehles verändert sich natürlich ; die komplette Ansicht. Das führt dazu, daß wir die Werte ; für Objekt-entfernungen des Schiffes anpassen müssen. ; CameraZoom cammera,2 ; Fischaugen korrigieren ;******* Global licht=CreateLight(1) ; Für das richtige Ambiente muß eine ordentliche ; Lichtquelle her. RotateEntity licht,0,90,0 ; Das Licht kommt von rechts ; Jetzt wird ein Objekt erzeugt und positioniert ; Global ball=CreateSphere(12) ; Eine Kugel erstellen Global tex=LoadTexture("welt.jpg") ; Die Welt-Textur laden EntityTexture ball,tex ; und dem Objekt zuweisen ScaleEntity ball,1000,1000,1000 ; Den Planet vergrößern PositionEntity ball,0,0,4003 ; Und vor die Kamera stellen ; Nun kommt der Main Loop ; Repeat TurnEntity ball,0,.1,0 ; Das Objekt wird bewegt/gedreht bewege_schiff() ; Funktions-aufruf für die Schiffs-bewegung RenderWorld ; Bild berechnen und zeichnen Flip 1 ; Seite wechseln Until KeyHit(1) ; Abrechen, wenn ESC gedrückt ; Und zum Schluß das Ende ; End ; Alles beenden Function bewege_schiff() Local MSF#=1 If KeyDown(200) ; Taste Pfeil auf TurnEntity schiff,.2,0,0 Else If KeyDown(208) ; Taste Pfeil ab TurnEntity schiff,-.2,0,0 Else If KeyDown(205) ; Taste rechts TurnEntity schiff,0,-.2,0 Else If KeyDown(203) ; Taste links TurnEntity schiff,0,.2,0 EndIf If KeyDown(17) ; Taste W MoveEntity schiff,0,0,MSF Else If KeyDown(31) ; Taste S MoveEntity schiff,0,0,-MSF EndIf ;******* ; ; Mit den Tasten A und D kann das Schiff nach rechts und links drehen ; If KeyDown(30) ; Taste A TurnEntity schiff,0,0,.2 Else If KeyDown(32) ; Taste D TurnEntity schiff,0,0,-.2 EndIf ;******* End Function ; ------------------------------------------------------ ; ; Im nächsten Schritt machen wir etwas mehr. Die Umge- ; bung ist noch recht dürftig. Da machen wir doch glatt ; etwas dagegen. Eine SkyBox muß her. Dazu benötigen ; wir eine Textur, die den Weltraum darstellt. Da wird ; uns Google wieder behilflich sein. Und ein weiteres ; Schiff als Gegner wäre bestimmt nützlich. ; ; -> Weiter mit 3D-Space-Game-008.bb
Created on 20.08.2005
Zurueck