hier mal ein kleines nutzloses Spiel:
Code: Alles auswählen
If InitSprite() = 0 Or InitKeyboard() = 0
MessageRequester("Error", "Can't open DirectX 7 or later", 0)
End
EndIf
#Benzin=1000
Zeitneu=500
If OpenScreen(1024, 768, 16, "Sprite")
Benzin=#Benzin
OpenPreferences("Optionen.dat")
Level$=ReadPreferenceString("Level", "1")
Level = Val(Level$)
PunkteTotal$=ReadPreferenceString("PunkteTotal", "0")
PunkteTotal = Val(PunkteTotal$)
DeleteFile("Optionen.dat")
speed1=8
x1=0
Dim speed2.f(100)
Dim x2.f(100)
Dim y2.f(100)
speed2(1)=1
For i = 2 To 100
y2(i)=1888
x2(i)=1888
Next i
x2(1)=1000
y1=0
y2(1)=500
x1=Random(1000)
y1=Random(650)
CreateImage(1,5,5)
UseImage(1)
StartDrawing(ImageOutput())
Box(0,0,5,5,RGB(255,0,0))
StopDrawing()
SaveImage(1,"Spieler.bmp")
FreeImage(1)
LoadSprite(0, "Spieler.bmp")
CreateImage(1,10,10)
UseImage(1)
StartDrawing(ImageOutput())
Box(0,0,10,10,RGB(0,255,255))
StopDrawing()
SaveImage(1,"Gegner.bmp")
FreeImage(1)
LoadSprite(1, "Gegner.bmp")
Zeit=Zeitneu
letzt=1
Repeat
ClearScreen(0,0,0)
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Left)
x1-speed1
Benzin-1
If Benzin=0
Punkte-20
Benzin=#Benzin
EndIf
ElseIf KeyboardPushed(#PB_Key_Right)
x1+speed1
Benzin-1
If Benzin=0
Punkte-20
Benzin=#Benzin
EndIf
ElseIf KeyboardPushed(#PB_Key_Up)
y1-speed1
Benzin-1
If Benzin=0
Punkte-20
Benzin=#Benzin
EndIf
ElseIf KeyboardPushed(#PB_Key_Down)
y1+speed1
Benzin-1
If Benzin=0
Punkte-20
Benzin=#Benzin
EndIf
EndIf
For i = 1 To 100
If x1 = x2(i)
If y1 > y2(i)
y2(i)+Random(7)
ElseIf y1 < y2
y2(i)-Random(7)
EndIf
Else
If x1 > x2(i)
x2(i)+Random(7)
ElseIf x1 < x2(i)
x2(i)-Random(7)
EndIf
EndIf
Next i
DisplaySprite(0, x1,y1)
For i = 1 To 100
DisplaySprite(1, x2(i), y2(i))
If SpriteCollision(0,x1,y1,1,x2(i),y2(i))
CloseScreen()
Exit=1
DeleteFile("Gegner.bmp")
DeleteFile("Spieler.bmp")
MessageRequester("GAME OVER!", "GAME OVER"+Chr(10)+"Sie haben "+Str(PunkteTotal)+" erreicht!", #MB_ICONINFORMATION)
DeleteFile("Optionen.dat")
CreatePreferences("Optionen.dat")
WritePreferenceString("Level", Str(Level))
WritePreferenceString("PunkteTotal", Str(PunkteTotal))
StartTimer=ElapsedMilliseconds()
Repeat
StopTimer=ElapsedMilliseconds()
TotalTimer=StopTimer-StartTimer
Until TotalTimer>5000
ClosePreferences()
End
EndIf
Next i
Zeit-1
If Zeit=0
x2(letzt+1)=Random(1000)
y2(letzt+1)=Random(650)
speed=Random(3)
If speed=0 : speed=1 : EndIf
speed2(letzt+1)=speed
letzt+1
Punkte+(speed*20*4)
Zeit=Zeitneu
EndIf
Select Level
Case 1
Zeitneu=500
P=100
Case 2
Zeitneu=400
P=500
Case 3
Zeitneu=300
P=1000
Case 4
Zeitneu=200
P=1100
Case 5
Zeitneu=100
P=1500
Case 6
Zeitneu=90
P=2000
Case 7
Zeitneu=80
P=2100
Case 6
Zeitneu=70
P=2500
Case 7
Zeitneu=60
P=3000
Case 8
Zeitneu=50
P=3100
Case 9
Zeitneu=40
P=3500
Case 10
Zeitneu=30
P=4000
Case 11
Zeitneu=20
P=4100
Case 12
Zeitneu=10
P=4500
Case 13
Zeitneu=9
P=5000
Case 14
Zeitneu=8
P=5100
Case 15
Zeitneu=7
P=5500
Case 16
Zeitneu=6
P=6000
Case 17
Zeitneu=5
P=6100
Case 18
Zeitneu=4
P=6500
Case 19
Zeitneu=3
P=7000
Case 20
Zeitneu=2
P=8000
Case 21
Zeitneu=1
P=8100
EndSelect
If Punkte=P Or Punkte>P
x1=Random(1000)
y1=Random(650)
PunkteTotal+Punkte
Punkte=0
StartTimer=ElapsedMilliseconds()
Repeat
StopTimer=ElapsedMilliseconds()
ClearScreen(0,0,0)
StartDrawing(ScreenOutput())
Locate(1024/2-TextLength("Level geschafft"), 768/2)
DrawText("LEVEL GESCHAFFT!!!")
StopDrawing()
FlipBuffers()
TotalTimer=StopTimer-StartTimer
Until TotalTimer>5000
Level+1
EndIf
StartDrawing(ScreenOutput())
DrawingMode(1)
FrontColor(255,255,255)
Locate(20,20)
DrawText("Level "+Str(Level))
Locate(20,40)
DrawText("Score: "+Str(Punkte)+"/"+Str(P))
Locate(20,60)
DrawText("Benzin: "+Str(Benzin)+" l")
Locate(20,100)
DrawText("Total Punkte: "+Str(PunkteTotal)+" l")
StopDrawing()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or Exit=1
DeleteFile("Gegner.bmp")
DeleteFile("Spieler.bmp")
Else
MessageRequester("Error", "Can't open a 640*480 - 16 bit screen !", 0)
EndIf
End
Der Spieler ist das kleine rote Viereck die Gegner sind die blauen Vierecke. Du musst den blauen Vierecken ausweichen. Es gibt 21 Level und es werden immer mehr Gegner. Die Grafiken erzeugt es im Spiel.
Zusätzlich hat man noch 1000 l Benzin. Beim bewegen vom Spieler zieht es immer Benzin ab. Wenn man 0l Benzin hat, werden 20 Punkte abgezogen und der Tank wird wieder gefüllt.
Steuerung:
Pfeiltasten: Bewegen der Figur
Sonstiges:
Wenn man verloren hat, muss man nur wieder das Programm starten und ist schon wieder im gleichen Level. Das Level und die gesamte Anzahl Punkte werden in die Datei "Optionen.dat" geschrieben. Wenn man wieder von vorne anfangen will, muss man nur die Datei löschen.
Schreibt, wenn etwas nicht funktioniert.
Liebe Grüsse
P. Mathis