3D-Space-Game-001.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-001 ; Date: 24.07.03 ;------------------------------------------------------- ; BB3D: 1.83 ;------------------------------------------------------- ; Mein dank an: Markus und HotBit ;------------------------------------------------------- ; ; Vorwort: ; ; Dies wird ein Tutorial, das sich mit der Erstellung ; eines 3D Space Games ala Elite befaßt. Oder wie die ; neueste Kreation von Microsofts Freelancer. Grundlegend ; möchte ich darauf hinweisen, daß Feedback sehr er- ; wünscht ist. Anregungen oder Rechtschreib- korrekturen, ; Fragen oder sonstiges, mailt mir bitte an folgende ; Adresse. turguttemucin@freesurf.ch. Ich weiß nicht, in wel- ; chen Abständen dieses Tut von mir weiter geführt wird. ; Grundsätzlich lege ich das Feedback als Maßstab an. ; Ich wünsche allen, die dieses Tut lesen viel Spaß, und ; hoffe, daß ich damit beitrage, das Verständnis für ; die Programmierung in BlitzBasic zu erweitern. ; ; -> Was soll es werden? ; ; Jeder der ein solches Game schreiben will, hat am An- ; fang 1000 Ideen, die er verwirklichen möchte. Mir ging ; es auch so. Aber je länger man programmiert, desto ; klarer die Erkenntnis: "Weniger ist oft mehr". Daher wer- ; den wir im Laufe dieses Tutorials, ein Grundgerüst ; entwickeln, das euch die Möglichkeiten aufzeigt, die ; mit BlitzBasic machbar sind. Um dieses Grundgerüst ; zu erstellen, benötigen wir einige Hilfsmittel. ; ; Blitz Basic 3D (auch DEMO version möglich) ; Blitz Hilfe 1.82 von BlitzBase.de. Der weltbesten ; Deutschen Online Dokumentation von ; TheShadow........... ; DOGA L1 Für das erstellen der Objecte.Es ; werden keine Kenntnisse im bereich ; Modell- erstellung benötigt. ; Internet Eine Verbindung zum Internet ist ; fast zwingend nötig. Da diverse ; Sachen dort besorgt werden müssen. ; Zeit Ohne die geht gar nichts. ; ; Es kommen mit Sicherheit noch einige andere Programme ; hinzu. Dazu aber später mehr. ; ; -> Wo fangen wir an ? ; ; Gute Frage. Am besten machen wir uns erst mal einen ; Eindruck von dem, was wir erreichen wollen. Da wäre ; zum Beispiel der Weltraum. Ziemlich gross das Teil. ; Den müssen wir irgenwie darstellen. Dann brauchen ; wir auch noch was zum Fliegen. Ein Raumschiff wäre ; schon nicht schlecht. Und ein paar Sachen, die in der ; Gegend rumschwirren, damit man die eigene Bewegung ; auch sieht. Behalten wir das mal als Ziel im Auge. ; ; -> Und los ! ; ; Jeder, der schon einiges an Erfahrung hat, wird jetzt ; aufstöhnen. Aber ich finde, mit Learning by Doing ; kommt man am Anfang am weitesten. Schaut euch den ; nachfolgenden Code an, und testet ihn mal. Es handelt ; sich dabei um den Main Loop und die Bildschirm- Ini- ; tialisierung. !! Im übrigen gehe ich davon aus, daß ; bekannt ist, was mit diesen Worten gemeint ist. !! Die ; jenigen von euch, die bestimmte Begriffe nicht kennen, ; können entweder mich direkt per EMail fragen, oder im ; Forum. ; ------------------------------------------------------ ; ; 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 activieren ; Danach die Kamera- und Licht-Einstellungen ; Global Cammera=CreateCamera() ; Ohne Kamera sieht man nichts Global licht=CreateLight(1) ; Für das richtige Ambiente muß eine ordentliche ; Lichtquelle her. RotateEntity licht,0,90,0 ; Das Licht in die richtige Richtung ; Jetzt wird ein Objekt erzeugt und positioniert ; Global ball=CreateSphere(8) ; Eine Kugel erstellen PositionEntity ball,0,0,3 ; Und vor die Kamera stellen ; Nun kommt der Main Loop ; Repeat TurnEntity ball,0,.1,0 ; Das Objekt wird bewegt/gedreht RenderWorld ; Bild berechnen und zeichnen Flip 1 ; Seite wechseln Until KeyHit(1) ; Abbrechen wenn ESC gedrückt ; Und zum Schluß das Ende ; End ; Alles beenden ; ------------------------------------------------------ ; ; OK. Das was ihr jetzt seht, ist noch nicht so toll. Aber ; es geht schon was . Ein paar Zeilen genügen, um ein 3D- ; Objekt zu erstellen und zu bewegen. Aber für ein Welt- ; raum Game ein bißchen dürftig. Also werden wir erst ; mal etwas Farbe ins Spiel bringen. Die Kugel eignet ; sich hervorragend zur Darstellung eines Planeten. Also ; besorgt ihr euch als erstes mal eine Textur für einen ; Planeten. Dazu müßt ihr nur bei Google unter "Suchen" ; folgendes eingeben. "planet and textur" und schon ; werden euch etliche Seiten mit Planeten-Texturen an- ; gezeigt. Eine davon ladet ihr euch runter und kopiert ; sie in den Ordner, in dem auch das Tut abgelegt ist. ; Benennt es in "welt" um. So, nun werden wir den ; Ball mal mit einer Textur versehen. ; -> Weiter mit 3D-Space-Game-002
Created on 20.08.2005
Zurueck