Problem mit Highscore-Streams
Übersicht

SirthawBetreff: Problem mit Highscore-Streams |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Guten Abend!
Ich habe folgendes Problem: Ich bastel gerade an einem Highscore für meinen Shooter (erstmal bestehend aus 3 Rängen). Bei den ersten beiden Rängen funktioniert das auch, ich teste ob die erreichte Punktzahl höher ist als der gespeicherte Highscore und schreibe dann alles in eine neue Datei: Code: [AUSKLAPPEN] If FileType("highscore.dat") = 1 Then read_highscore = ReadFile("highscore.dat") highscore_wert_1=ReadInt(read_highscore) highscore_wert_2=ReadInt(read_highscore) highscore_wert_3=ReadInt(read_highscore) SeekFile(read_highscore,0) If highscore_wert_1 < punkte Then highscore_rekord = WriteFile("highscore.dat") SeekFile(highscore_rekord,0) WriteInt(highscore_rekord,punkte) CloseFile highscore_rekord EndIf If highscore_wert_2 < punkte And highscore_wert_1 > punkte Then highscore_rekord = WriteFile("highscore.dat") SeekFile(highscore_rekord,0) WriteInt(highscore_rekord,highscore_wert_1) SeekFile(highscore_rekord,4) WriteInt(highscore_rekord,punkte) CloseFile highscore_rekord EndIf CloseFile(read_highscore) Funktioniert wunderbar, aber wenn ich jetzt noch den dritten Rang hinzufügen will, überschreibt mir das Programm trotzdem den ersten und zweiten Rang und nicht den dritten: Code: [AUSKLAPPEN] If highscore_wert_3 < punkte And highscore_wert_2 > punkte Then highscore_rekord = OpenFile("highscore.dat") SeekFile(highscore_rekord,0) WriteInt(highscore_rekord,highscore_wert_1) SeekFile(highscore_rekord,4) WriteInt(highscore_rekord,highscore_wert_2) SeekFile(highscore_rekord,12) WriteInt(highscore_rekord,punkte) CloseFile highscore_rekord EndIf Wieso gibt es hierbei Probleme? Ich hoffe, dass ihr mir helfen könnt. Mit freundlichen Grüßen Sirthaw |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich würde es viel unkomplizierter machen:
1. Ganz Datei auf einmal in die Variablen einlesen 2. Werte vergleichen und Variablen ändern 3. Alle Variablen zurückschreiben BlitzBasic: [AUSKLAPPEN] Anzahl%=7 |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
Sirthaw |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke für die alternative Lösung,
aber kann mir jemand erklären, was an meinem Code falsch ist? |
||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wahrscheinlich liegt es an Code: [AUSKLAPPEN] SeekFile(highscore_rekord,12) genauer gesagt am Offset von 12. Die Datei ist einfach in dem Moment noch nicht so gross. Kann man beim Schreiben überhaupt seeken? Selbst wenn, wäre 12 die falsche Position. Erster int bei 0, zweiter bei 4, dritter bei 8.
mfG Holzchopf |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
Sirthaw |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja, daran liegt es!
Die Datei war nicht groß genug. Vielen Dank, Holzchopf! |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group