Highscore für Game???

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Roggi

Betreff: Highscore für Game???

BeitragMi, Dez 07, 2005 15:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute,

Ich weiß es kommen gleich wieder antworten wie "Schmeiss die Suche an" oder "Schau in der Suche" aber ich kapiere es einfach nicht. Das hier ist mein Code und er soll einen Highscore bekommen. Und zwar läuft die Zeit ab und wenn er nach der Zeit so und soviele Punkte hat wird er eingetragen. In der Suche habe ich für mich nichts verständliches gefunden. Bitte helft mir!!! Crying or Very sad BlitzBasic: [AUSKLAPPEN]
Graphics 1024,768,16,2 

start=LoadImage(\"GFX\Start1.bmp\");Startbilschirm
DrawImage start,1,1
Delay 2500
Cls

start2=LoadImage(\"GFX\Start.bmp\")
DrawImage start2,1,1
Delay 2500
Cls


SetFont(LoadFont(\"Comic Sans MS\",30,1))

Const game_pause = 1
Const game_menue = 2
Const game_haupt = 3
Const game_info = 4

Global game_zustand = game_menue


;Wichtig. Hauptschleife. Hier wird das ganze Spiel verwaltet.

Repeat


Select game_zustand
Case game_menue
GameMenue()
Case game_haupt
GameHaupt()
Case game_pause

End Select


Until game_zustand = game_over
End





Function GameMenue()

Local temp_zustand = game_zustand

FlushMouse()
FlushKeys()

H=LoadImage(\"GFX\ADVENTSKALENDER_BSH.bmp\")
Repeat

Cls
DrawImage H,1,1


Color 255,255,255
Text GraphicsWidth()/3,200,\"START\"
Color 255,255,255
Text GraphicsWidth()/3,400,\"Infos\"


If MouseHit(1)
If RectsOverlap(MouseX(),MouseY(),1,1,GraphicsWidth()/3,200,StringWidth(\"START\"),StringHeight(\"START\"))
game_zustand = game_haupt
ElseIf RectsOverlap(MouseX(),MouseY(),1,1,GraphicsWidth()/3,400,StringWidth(\"Infos\"),StringHeight(\"Infos\"))
game_zustand = game_info
EndIf
EndIf


If KeyHit(1)
End
EndIf

Flip
Until game_zustand<>temp_zustand

End Function

Function GameInfo()
Repeat
Cls
Text 1,1,\"Dieses Spiel wurde von Tom(0Ahnung) programmiert! Die Grafik stammt von Lion!\"
Text 1,20,\"Zum Beenden bitte immer ESC drücken!\"
Until KeyHit(1)

End Function


Function HighSort(Punkte,name$)
For a=5 To 0 Step -1 ; Bei mehr als 6 Plätzen hier ändern

If Punkte>highpoints(a)
highname$(a+1)=highname$(a)
highpoints(a+1)=highpoints(a)
highname$(a)=name$
highpoints(a)=Punkte
EndIf
Next
End Function

Function highpoints(a)
highpoints(a)= 1000
End Function

Function highname$(a)
highname$(a)= Input(\"Dein Name\")
Text 1,20,\"Dein Name ist also\"+highname$(a)
End Function


Function GameHaupt()


Graphics 800,600,32,1

Cls
Credits=LoadImage(\"GFX\Credits.bmp\")
DrawImage Credits,0,0
WaitKey()
Cls
SetBuffer BackBuffer()
Hintergrund=LoadImage(\"GFX\Hintergrund.bmp\")
Geschenk1 =LoadImage(\"GFX\kGeschenk.bmp\")
Geschenk2 = LoadImage(\"GFX\gGeschenk.bmp\")
Geschenk3=LoadImage(\"GFX\Geschenk3.bmp\")
Geschenk4=LoadImage(\"GFX\Geschenk4.bmp\")
Spieler=LoadImage(\"GFX\Spieler.bmp\")
Punkte1=LoadImage(\"GFX\Punkte.bmp\")
Braten=LoadImage(\"GFX\Braten.bmp\")
MaskImage Punkte1,0,0,0






MaskImage Geschenk1,0,0,0
MaskImage Geschenk2,0,0,0
MaskImage Braten,255,255,255
links=203
rechts=205
xs#=300
ys#=500
MaskImage Spieler,255,255,255;hier wird alles gemalt
Color 255,255,255

While Not KeyDown(1)
DrawImage Hintergrund,0,0

If KeyDown(rechts) And xs#<725Then xs#=xs#+ 0.7
If KeyDown(links) And xs#>-0 Then xs# =xs#-0.7







ygeschenk#=ygeschenk# +0.3

If ygeschenk#>600 Then
ygeschenk# = -100
xgeschenk=Rand(1,800)
geschenk=Rand(1,5)
EndIf



If geschenk=1 Then
DrawImage Geschenk1,xgeschenk,ygeschenk#
EndIf

If geschenk=2 Then
DrawImage Geschenk2,xgeschenk,ygeschenk#
EndIf

If geschenk=3 Then
DrawImage Braten,xgeschenk,ygeschenk#
EndIf

If geschenk=4 Then
DrawImage Geschenk3,xgeschenk,ygeschenk#
EndIf

If geschenk=5 Then
DrawImage Geschenk4,xgeschenk,ygeschenk#
EndIf





DrawImage Spieler,xs#,ys#



Text 700, 40, Punkte
DrawImage Punkte1,600,27


If ImagesCollide(Spieler,xs#,ys#,0,Geschenk1,xgeschenk,ygeschenk,0)
Punkte=Punkte+1





EndIf




Flip 0

Wend

End
End Function


Hilfe!!!!

sunny

BeitragMi, Dez 07, 2005 18:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe zwar genauso wenig ahnung wie du aber kann es sein, dass du bei manchen If-Verzweigungen wie hier

BlitzBasic: [AUSKLAPPEN]
If MouseHit(1) 
If RectsOverlap(MouseX(),MouseY(),1,1,GraphicsWidth()/3,200,StringWidth(\"START\"),StringHeight(\"START\"))
game_zustand = game_haupt
ElseIf RectsOverlap(MouseX(),MouseY(),1,1,GraphicsWidth()/3,400,StringWidth(\"Infos\"),StringHeight(\"Infos\"))
game_zustand = game_info
EndIf
EndIf


das then vergessen hast?
Hat zwar nichts mit deiner Frage zu tun, aber du solltest wenn es nicht absichlich ist es ändern. Rolling Eyes

BtbN

BeitragMi, Dez 07, 2005 20:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Then ist optional und unbedeutend

Hubsi

BeitragMi, Dez 07, 2005 23:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Du die Suche nicht benutzen würdest kann man Dir wirklich nicht vorwerfen:Code: [AUSKLAPPEN]
Function HighSort(Punkte,name$)
For a=5 To 0 Step -1 ; Bei mehr als 6 Plätzen hier ändern

If  Punkte>highpoints(a)
highname$(a+1)=highname$(a)
highpoints(a+1)=highpoints(a)
highname$(a)=name$
highpoints(a)=Punkte
EndIf
Next
End Function
Kam mir gleich so bekannt vor Very Happy Ansonsten verstehe ich Dein Problem nicht so recht. Du übergibst einfach der Funktion den Namen und die dazugehörigen Punkte und das Ergebniss ist eine sortierte Liste Very Happy Oder meintest Du das speichern in eine Datei? Dazu brauchts auch nur ql:WriteFile, ql:WriteLine, ql:WriteInt, ql:CloseFile und ql:For ql:Next Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group