Seite 1 von 2
Highscore erstellen!!
Verfasst: 02.09.2006 12:19
von D4uS1
Bin ein absoluter Anfänger, also bitte nicht lachen bei der Frage:
Wie erstelle ich eine Highscore, um Punkte und Spielername nach Rangliste abzuspeichern?
Danke im Voraus!
Verfasst: 02.09.2006 12:33
von KeyKon
Ich hab da nen Demo-Code, wenn ich ihn finde schick ich ihn dir (kann aber noch dauern

)
Meine Tipps:
- Dynamisch Arbeiten
- Linked Lists benutzen
- Mit File, nich mit Preferences arbeiten
Ich schick wie gesacht den Code nach sobald ich ihn gefunden hab!
KeyKon
Verfasst: 02.09.2006 13:29
von winduff
Du Sammelst die Punkte im Spiel, wenn das Spiel fertig ist haste deine fertige Var.
DAnn fragst du nach dem Namen, welches in nen String übergeben wird.
So und jetzt lies dir die Preferences-Funktionen durch, eg. Openpreference(), Readpreferencestring(), writepreferencestring(), usw. usw. usw.
-> Details und ne übersicht stehen in der PureBasic Hilfe.
Eine Frage neben bei -> ist das Spiel denn überhaupt schon fertig?

Verfasst: 02.09.2006 13:45
von D4uS1
Ja das Spiel is soweit fertig, will nur im laufe der zeit noch weitere funktionen einbauen, ich schaue mal ob ich das so hinkrieg, ansonsten meld ich mich nochmal, danke!!!!!
Verfasst: 02.09.2006 14:09
von STARGÅTE
Wenn du bei der
SUCHE "Highscore" eingibst dann findest du haufen weise Thema. Also das nächste mal bitte er in der Suche gucken

(ist nicht böse gemeint)
Hier ist mein CODE den ich schon einem andere geschick habe :
Code: Alles auswählen
Procedure HighScore(Datei$, Punkte, Name$)
If OpenFile(1, Datei$)
If CreateFile(2, "_"+Datei$)
Repeat
UseFile(1)
String$ = ReadString()
HS_Punkte = Val(Trim(Mid(String$, 1, 10)))
UseFile(2)
If HS_Punkte < Punkte And Eingetragen = 0:
WriteStringN(Str(Punkte)+Space(10-Len(Str(Punkte)))+Name$)
Eingetragen = 1
EndIf
WriteStringN(String$)
Until String$ = ""
CloseFile(2)
EndIf
CloseFile(1)
EndIf
CopyFile("_"+Datei$, Datei$)
DeleteFile("_"+Datei$)
EndProcedure
HighScore("HS.txt", 23, "Test 1")
HighScore("HS.txt", 4, "martin")
HighScore("HS.txt", 124, "Stargate")
HighScore("HS.txt", 1, "LOL")
HighScore("HS.txt", 2341, "baum")
wenns geht dann ist in der Datei HS.txt eine schicke geordnete HighScore liste
Wenns Fragen gibt einfach Fragen

Verfasst: 02.09.2006 14:24
von Kiffi
@STARGÅTE:
gibt's für OpenFile() und CreateFile() unter V3.3 eigentlich keine
Rückgabewerte, anhand deren man überprüfen kann, ob der entsprechende
Befehl auch wirklich erfolgreich ausgeführt werden konnte? Wenn ja, dann
solltest Du Deine Routinen um diese Rückgabewerte und deren Auswertung
erweitern.
Grüße ... Kiffi
Verfasst: 02.09.2006 14:30
von STARGÅTE
ja gibs, nur ich verwende es nie, nur wenn ich es wirklich brauche, aber ich kanns hier ändern .

Verfasst: 02.09.2006 14:33
von D4uS1
danke für die antworten, wenn ich aber das mache was du gesagt hast, kommt da die fehlermeldung:
a procedure parameter cant be a global variable!
Was denn sonst? Soll ich ne Konstante angeben oder wat, aber dann ist ja die Punktezahl eingeschränkt!!!!!
Verfasst: 02.09.2006 14:42
von #NULL
>>a procedure parameter cant be a global variable!
hab ich bisher zwar noch nie gesehen, aberwarum sollte man eine Global var übergeben?
Verfasst: 02.09.2006 14:44
von Kaeru Gaman
hast du Stargates Code einfach so eingebaut?
du musst natürlich checken, ob du schon eine globale variable verwendest,
die genauso heißt, wie ne eine von den verwendeten variablen.