Highscoresystem

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

ShadowJumper

Betreff: Highscoresystem

BeitragMo, Apr 09, 2007 19:39
Antworten mit Zitat
Benutzer-Profile anzeigen
ich bin dabei für mein Spiel ein Highscoresystem zu "basteln"
folgendes steht dafür ganz am anfang
Code: [AUSKLAPPEN]
Global punkte
Global namenlaenge=0        ;für die Länge des Namens
Global buchstabe=0          ;temporär für den ASCII-Code
Dim letter$(17)             ;für die Schrift beim eingeben des Namens
For i = 1 To 17
   letter$(i)=""
Next
Global temp$                ;eine temporäre Variable für die Highscore
Global name$                ;für den Namen
stream=OpenFile("Data.dat")
Global pos=0
dann kommt das Spiel und am Ende wird folgende Function aufgerufen
Code: [AUSKLAPPEN]
Function highscoreeingabe(pl) ;pl entspricht momentan immer 1
Cls
FlushKeys


buchstabe=0
namenlaenge=0
name=""
fertig=0
For i = 1 To 17
   letter$(i)=""
Next
Repeat
Cls
buchstabe=GetKey()
If KeyHit(28) And namenlaenge>=3 Then
   For i = namenlaenge+1 To 17
      letter$(i)="."
   Next
   fertig=1
ElseIf buchstabe=8 And namenlaenge>0 Then
   letter$(namenlaenge)=""
   namenlaenge=namenlaenge-1
ElseIf buchstabe>=32 And namenlaenge<18 Then
   letter$(namenlaenge+1)=Chr(buchstabe)
   namenlaenge=namenlaenge+1
   buchstabe=0
EndIf
   name=letter$(1)+letter$(2)+letter$(3)+letter$(4)+letter$(5)+letter$(6)+letter$(7)+letter$(8)+letter$(9)+letter$(10)+letter$(11)+letter$(12)+letter$(13)+letter$(14)+letter$(15)+letter$(16)+letter$(17)

Text 0, 0, name
Text 0, 24, namenlaenge
Flip

Until fertig=1

bis hierhin funktioniert alles normal, aber es wurde nur der Name eingegeben
(es ist vlt. nich die einfachste, aber eine F8unktionierende möglichkeit)
danch kommt dann das:
Code: [AUSKLAPPEN]
fertig=0

If punkte<100 Then
   temp$="..."
ElseIf punkte<1000 Then
   temp$=".."
ElseIf punkte<10000 Then
   temp$="."
Else
   temp$=""
EndIf
WriteString stream, name+temp
If punkte<100 Then
   pos=22
ElseIf punkte<1000 Then
   pos=21
ElseIf punkte<10000 Then
   pos=20
Else
   pos=19
EndIf
Offset=SeekFile(stream, pos)
WriteShort stream, punkte
pos=pos+2
name=letter$(1)+letter$(2)+letter$(3)+letter$(4)+letter$(5)+letter$(6)+letter$(7)+letter$(8)+letter$(9)+letter$(10)+letter$(11)+letter$(12)+letter$(13)+letter$(14)+letter$(15)+letter$(16)+letter$(17)+temp$+punkte
Offset=SeekFile(stream, pos)
Cls
Text 0, 0, name
Flip
FlushKeys
WaitKey
WaitKey
WaitKey
hauptmenue
End Function

jedoch funktioniert dieser Teil nich
"Invalid Stream Handle"

ich hatte es zwar schonmal so, das es in der Datei gespeichert wurde, aber es wurde immer überschrieben

hoffe mir kann jemand helfen

Smily

BeitragMo, Apr 09, 2007 19:46
Antworten mit Zitat
Benutzer-Profile anzeigen
1: Bei welcher zeile kommt der fehler?
2: Hast du schonmal versucht, die Stream-Variable global zu machen?

Gruß, Smily0412
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

ShadowJumper

BeitragMo, Apr 09, 2007 23:18
Antworten mit Zitat
Benutzer-Profile anzeigen
nachdem ich das gemacht hatte hats funktioniert Embarassed
hätte vlt. au drauf kommen können *Kopf-gegen-Wand-hau*

ich hab au schon n bissl wegen speichern und laden probiert und beinahe einen Beitrag deshalb geschrieben (Fehler is mir zum Glück kurz vorher aufgefallen Very Happy )

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group