Hiscoretabelle erstellen, lesen und speichern

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

roaches

Betreff: Hiscoretabelle erstellen, lesen und speichern

BeitragSo, Feb 15, 2004 2:58
Antworten mit Zitat
Benutzer-Profile anzeigen
tach,

ich würde gerne in mein erstes BB-game eine hiscoretabelle einsetzen, in der sagen wir mal die 10 besten festgehalten werden wollen.
gespeichert werden sollte der spielername (name$ oder name1$) und die punktzahl (points1 oder points2).

wie stelle ich das an?
hab im buch programmieren mit basic nix speziell über ne hiscore tabelle gefunden und die erklärung über das grundsätzliche spielstandspeichern klärt mich nicht ganz auf.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Feb 15, 2004 3:24
Antworten mit Zitat
Benutzer-Profile anzeigen
https://www.blitzforum.de/viewtopic.php?t=766
da steht es drinne....
[BB2D | BB3D | BB+]
 

roaches

BeitragSo, Feb 15, 2004 14:37
Antworten mit Zitat
Benutzer-Profile anzeigen
wie krieg ich jetzt meine variablen (name$ und punkte) in die tabelle rein ?

hab vor die liste

point=500
score=punkte1

eingefügt.
ist wohl aber nicht richtig, zudem kommt die fehlermeldung "duplicate indentifier".
komt wohl daher dass ich vor dem hiscorecode eben score=punkte1 eingefügt.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Feb 15, 2004 15:55
Antworten mit Zitat
Benutzer-Profile anzeigen
erhöhe die dimfelder auf 11

und die schleifen zum sortieren auch auf 11

die erspielten werte speichert du dann in
name$(11) = erreichte Punktzahl
Punkte(11) = DerName$


dann sortieren
anzeigen der highscore aber nur von 1-10
[BB2D | BB3D | BB+]
 

roaches

BeitragSo, Feb 15, 2004 17:21
Antworten mit Zitat
Benutzer-Profile anzeigen
der code sieht bei mir nun so aus:


Code: [AUSKLAPPEN]

Graphics 640,480,16,2
AppTitle "Highscore"



SeedRnd MilliSecs()

Dim Score(11)
Dim Name1$(11)

 If points2>points1 Then name1$(11)=name$
If points2>points1 Then score(11)=points2
If points1>points2 Then name1$(11)=name2$
If points1>points2 Then score(11)=points1

; --- Liste sortieren
For I = 1 To 11
For J = I To 11
If Score(I) < Score(J) Then ; "<" = größter zuerst / ">" = kleinster zuerst
X = Score(I) : Score(I) = Score(J) : Score(J) = X
xx$ = Name1$(i) : Name1$(i) = Name1$(j): Name$1(j) = xx$
EndIf
Next
Next




; --- Liste speichern
Datei = WriteFile("Highscore.dat")

For i = 1 To 10
WriteLine Datei, Name1$(i)
WriteLine Datei, Score(i)
Next

CloseFile Datei



; --- Liste laden + anzeigen
Datei = ReadFile("Highscore.dat")

Print
Print "Sortierte Liste:"

For i = 1 To 10
Name1$(i) = ReadLine(Datei)
Score(i) = ReadLine(Datei)
Print i + "." + Name1$(i) + " " + Score(i)
Next

CloseFile Datei

WaitKey
End



als fehlermeldung erscheint "Expecting Endif"

ich wüsste nicht wo es fehlt.
name$, name2$ und points1, points2 sind die variablen aus dem spiel welche in dem highscore übernommen werden sollen.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Feb 15, 2004 17:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Name$1(j) das stand da..... ist falsch

Code: [AUSKLAPPEN]
; --- Liste sortieren
For I = 1 To 11
   For J = I To 11
      If Score(I) < Score(J) Then ; "<" = größter zuerst / ">" = kleinster zuerst
         X = Score(I) : Score(I) = Score(J) : Score(J) = X
         xx$ = Name1$(i) : Name1$(i) = Name1$(j): Name1$(j) = xx$ ;Name$1(j) stand da ist falsch
      EndIf
   Next
Next
[BB2D | BB3D | BB+]
 

roaches

BeitragSo, Feb 15, 2004 18:14
Antworten mit Zitat
Benutzer-Profile anzeigen
danke für die hilfe Wink

jetzt läuft das ganze, jedoch wird der highscore nicht gespeichert.
er wird zwar nach einem spiel angezeigt, ist beim neustart jedoch wieder weg.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Feb 15, 2004 18:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Du muß auch die alte liste einladen direct hinter dem Dim befehl
[BB2D | BB3D | BB+]
 

roaches

BeitragSo, Feb 15, 2004 18:51
Antworten mit Zitat
Benutzer-Profile anzeigen
jepp, jetzts funktioniert einwandfrei...
vielen dank nochmals und bis zum nächsten mal Wink

grüsse
 

roaches

BeitragSo, Feb 15, 2004 20:04
Antworten mit Zitat
Benutzer-Profile anzeigen
und direkt das nächste problem:

ich will das spiel in eine .zip datei packen, und dafür alle bilddateien in ein eigenes verzeichniss (/data/) verschieben
in dem Hauptverzeichniss ist also die .exe, eine readmedatei und das verzeichniss /data.
dafür hab ich alle loadimage befehle um den zusatz /data/dateiname.png erweitert.

es kommt jedoch die fehlermeldung "memory access violation".
was hab ich falsch gemacht.
muss der dateipfad etwa komplett angegeben werden mit festplattenbezeichnung und allen ordern ?

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Feb 15, 2004 20:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Beispiel:
Code: [AUSKLAPPEN]
LoadImage("Gfx\Mauszeiger.bmp")


so sollte es gehen ....
[BB2D | BB3D | BB+]
 

roaches

BeitragSo, Feb 15, 2004 20:16
Antworten mit Zitat
Benutzer-Profile anzeigen
jepp, das / am anfang war eins zuviel,

also nochmals vielen dank für deine hilfe und ich hoffe das wars jetzt auch
grüsse

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group