Kann man mit Blitz Basic 3D auch 2D Games erstellen?
Übersicht

![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
Soo der liebe Spikey hat sich jetzt die Mühe gemacht, diesen Code zu tippen. Er könnte schludrig sein, da ich ihn schnell dahingecoded hab, ist aber gut kommentiert. Schau in der Onlinehilfe nach, wenn du einen Befehl nicht weißt. Bei Fragen frage.
Ich bezweifle jedoch, dass es dir viel hilft, naja: Code: [AUSKLAPPEN] ;in den Grafikmodus: Graphics 500,400,0,2 ;das sind ungefähr die Abmessungen, die dein Bild hat ;anstatt mit LoadImage zu laden, erstellen wir ein Bild: Global Hochhaus = CreateImage(100,450) ;um in das Bild zeichnen zu können, gehen wir in seinen Imagebuffer SetBuffer ImageBuffer(Hochhaus) ;Das Hochhaus soll Grau sein. Color 192,192,192 ;nun wird ein ausgefülltes Rechteck hineingezeichnet Rect 0,0,100,450,1 ;noch ein primitives Bild, vom Springer, diesmal animiert. Global Springer = CreateImage(10,20,2) ;zeichnen wir zuerst den Spieler ohne Fallschirm SetBuffer ImageBuffer(Springer,0) Color 0,0,255 Oval 2,10,5,10,1 ;und den Springer mit Fallschirm SetBuffer ImageBuffer(Springer,1) Color 0,0,255 Oval 2,10,5,10,1 Color 255,0,0 Rect 0,0,10,10 ;transparenz bestimmen MaskImage Springer,0,0,0 ;für den Hintergurnd nehmen wir einfach eine hellblaue Löschfarbe ClsColor 140,180,255 ;nun definieren wir eigene globale Variablen Global PlayerX# = 20 ;X-Koordinate des Spielers Global PlayerY ;Y-Koordinate des Spielers Global Zustand ;Zustand des Spiels (0 - Auf dem Hochhaus, 1 - Sprung) Global Fallschirmzustand ;ist der Fallschirm draußen ;und einige Konstanten Const Schwerkraft = 2 Const Luftwiderstand = 1 SetBuffer BackBuffer() ;nun kommt die Hauptschleife While Not KeyHit(1) ;Bildschirm löschen Cls ;Bei der Anlaufphase starten wir die Funktion "Phase1" If Zustand = 0 Then Phase1 ;Bei der Sprungphase starten wir die Funktion "Phase2" If Zustand = 1 Then Phase2 ;Bei der Landungsphase beenden wir das Spiel If Zustand = 2 Then Phase3 ;am Ende zeichnen wir alles zeichnen Flip Wend ;hier die Funktion "Phase1" Function Phase1() ;Die Y-Koordinate ist momentan immmer gleich PlayerY = 30 ;mit den Pfeiltasten kann der Spieler bewegt werden If KeyDown(203) Then PlayerX = PlayerX - 1 ;links EndIf If KeyDown(205) Then PlayerX = PlayerX + 1 ;rechts ;wenn er nicht mehr auf horizontaler Höhe des Hochhauses ist, wird die 2. Phase eingestellt If PlayerX > 100 Then Zustand = 1 End Function ;und die 2. Phase Function Phase2() ;zur Y-Koordinate wird die Schwerkraft addiert. ;Bei offenem Fallschirm wird der Luftwiderstand abgezogen. PlayerY = PlayerY + Schwerkraft - (Fallschirmzustand * Luftwiderstand) ;zur X-Koordinate wird die seitliche Absprunggeschwindigkeit (also 1) addiert, ;aber nur wenn der Fallschirm nicht offen ist. If Fallschirmzustand = 0 Then PlayerX = PlayerX + 1 Else PlayerX = PlayerX + 0.25 EndIf ;Bei Leertaste wird der Fallschirm ausgepackt If KeyHit(57) Then Fallschirmzustand = 1 ;Wenn der Spieler gelandet ist, wird die Landungsphase eingeleitet If PlayerY > 380 Then zustand = 2 End Function Function Phase3() Cls Color 0,0,0 Text 50,50,"Das wars" Flip FlushKeys WaitKey End End Function Function zeichnen() ;Das Hochhaus malen DrawImage Hochhaus,0,50 ;Den Springer zeichnen. DrawImage Springer, PlayerX,PlayerY, Fallschirmzustand ;wenn der 1 ist, wird der Fallschirm gezeichnet. End Function |
||
![]() |
Rob_ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein Spikey!
So lernt er doch nichts, du hast dir mühe gegeben aber er gibt sich bestimmt keine oder andere habens jetzt leicht es abzugucken und lernen nichts dazu. |
||
AMD Athlon 64 3500+ | Infineon 1 GB DDR RAM | nVidia Geforce 7800 GTX |
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
Najohh, ich dachte, es hilft, wenn er jeden Befehl beschrieben sieht, außerdem wollte er es und ich hatte nichts anderes zu tun. Und der Code ist ja noch ausbaufertig, im Moment ist es ja noch kein Spiel.
edit: hab mal eine Beschleunigung des Springers für mehr Realismus eingebaut: Code: [AUSKLAPPEN] ;in den Grafikmodus: Graphics 500,400,0,2 ;das sind ungefähr die Abmessungen, die dein Bild hat ;anstatt mit LoadImage zu laden, erstellen wir ein Bild: Global Hochhaus = CreateImage(100,450) ;um in das Bild zeichnen zu können, gehen wir in seinen Imagebuffer SetBuffer ImageBuffer(Hochhaus) ;Das Hochhaus soll Grau sein. Color 192,192,192 ;nun wird ein ausgefülltes Rechteck hineingezeichnet Rect 0,0,100,450,1 ;noch ein primitives Bild, vom Springer, diesmal animiert. Global Springer = CreateImage(10,20,2) ;zeichnen wir zuerst den Spieler ohne Fallschirm SetBuffer ImageBuffer(Springer,0) Color 0,0,255 Oval 2,10,5,10,1 ;und den Springer mit Fallschirm SetBuffer ImageBuffer(Springer,1) Color 0,0,255 Oval 2,10,5,10,1 Color 255,0,0 Rect 0,0,10,10 ;transparenz bestimmen MaskImage Springer,0,0,0 ;für den Hintergurnd nehmen wir einfach eine hellblaue Löschfarbe ClsColor 140,180,255 ;nun definieren wir eigene globale Variablen Global PlayerX# = 20 ;X-Koordinate des Spielers Global PlayerY# ;Y-Koordinate des Spielers Global PlayerYSpeed# Global Zustand ;Zustand des Spiels (0 - Auf dem Hochhaus, 1 - Sprung) Global Fallschirmzustand ;ist der Fallschirm draußen ;und einige Konstanten Const Schwerkraft# = 0.05 Const Luftwiderstand# = 1.45 SetBuffer BackBuffer() ;nun kommt die Hauptschleife While Not KeyHit(1) ;Bildschirm löschen Cls ;Bei der Anlaufphase starten wir die Funktion "Phase1" If Zustand = 0 Then Phase1 ;Bei der Sprungphase starten wir die Funktion "Phase2" If Zustand = 1 Then Phase2 ;Bei der Landungsphase beenden wir das Spiel If Zustand = 2 Then Phase3 ;am Ende zeichnen wir alles zeichnen Flip Wend ;hier die Funktion "Phase1" Function Phase1() ;Die Y-Koordinate ist momentan immmer gleich PlayerY = 30 ;mit den Pfeiltasten kann der Spieler bewegt werden If KeyDown(203) Then PlayerX = PlayerX - 1 ;links EndIf If KeyDown(205) Then PlayerX = PlayerX + 1 ;rechts ;wenn er nicht mehr auf horizontaler Höhe des Hochhauses ist, wird die 2. Phase eingestellt If PlayerX > 100 Then Zustand = 1 End Function ;und die 2. Phase Function Phase2() ;zur Y-Koordinate wird die Schwerkraft addiert. ;Bei offenem Fallschirm wird der Luftwiderstand abgezogen. PlayerYSpeed = PlayerYSpeed + Schwerkraft If Fallschirmzustand = 1 Then PlayerYSpeed = PlayerYSpeed / Luftwiderstand + 0.25 PlayerY = PlayerY + PlayerYSpeed ;zur X-Koordinate wird die seitliche Absprunggeschwindigkeit (also 1) addiert, ;aber nur wenn der Fallschirm nicht offen ist. If Fallschirmzustand = 0 Then PlayerX = PlayerX + 1 Else PlayerX = PlayerX + 0.25 EndIf ;Bei Leertaste wird der Fallschirm ausgepackt If KeyHit(57) Then Fallschirmzustand = 1 ;Wenn der Spieler gelandet ist, wird die Landungsphase eingeleitet If PlayerY > 380 Then zustand = 2 End Function Function Phase3() Cls Color 0,0,0 Text 50,50,"Das wars" Flip FlushKeys WaitKey End End Function Function zeichnen() ;Das Hochhaus malen DrawImage Hochhaus,0,50 ;Den Springer zeichnen. DrawImage Springer, PlayerX,PlayerY, Fallschirmzustand ;wenn der 1 ist, wird der Fallschirm gezeichnet. End Function |
||
![]() |
Artemis |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich mag meins auch sehr!!
Code: [AUSKLAPPEN] AppTitle "Fallschirmspringen"
FlushKeys y = 10 Graphics 200,600,16,2 SetBuffer(BackBuffer()) ClsColor 0,255,255 Cls Color 255,0,0 Rect 90,20,110,5 Color 0,0,255 Rect 90,y,5,10 Color 0,255,0 Rect 0,590,200,10 Flip Repeat Until KeyHit(57) Cls Color 255,0,0 Rect 100,20,100,5 Color 0,0,255 Rect 90,y,5,10 Color 0,255,0 Rect 0,590,200,10 Repeat Color 0,255,255 Rect 90,y,5,10 y = y + 2 Color 0,0,255 Rect 90,y,5,10 Flip If KeyHit(1) Then End If y = 580 Then Color 0,0,0 Text 100,300,"VERLOREN",1,1 Flip FlushKeys WaitKey End EndIf Until KeyHit(57) Repeat y = y + 1 Color 0,255,255 Rect 80,y-30,25,35 Color 255,255,255 Oval 80,y-20,25,25 Color 0,255,255 Oval 80,y-10,25,25 Color 0,0,255 Rect 90,y,5,10 Flip If KeyHit(1) Then End Until y = 580 Color 0,0,0 Text 100,300,"GEWONNEN",1,1 Flip FlushKeys WaitKey End |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group