 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Grassstunger
Anmeldungsdatum: 27.12.2009 Beiträge: 11
|
Verfasst am: 28.12.2009, 16:06 Titel: Wieso speichert es IMMER? |
|
|
http://ul.to/ybfe63
Also ich hab da jetzt das Problem, wenn man mehr als 0 Punkte erzielt, wird es schon in der Txt datei hinein geschrieben und wenn man dann das spiel erneut startet kommt Name(z.B. pronkler), Punkte ( z.B. 500) und dann eine 0, wieso????
Code: | randomize timer
Screenres 1024, 768 ,32 , 1,&H01
setmouse 0,0,0
Dim enemy As Any Ptr = ImageCreate( 80, 80 )
Dim jude As Any Ptr = ImageCreate( 80, 80 )
BLoad "Grafix\Player.bmp", jude
Bload "Grafix\enemy.bmp", enemy
Dim Laser As Any Ptr = ImageCreate( 80, 80 )
BLoad "Grafix\Laser.bmp", Laser
Dim Leben As Any Ptr = ImageCreate( 13, 13 )
BLoad "Grafix\Leben.bmp", Leben
Dim Punkte as Single
Punkte = 0
dim b as single
b =50
dim Fertig as single
Fertig = 1
dim c as single
c = 50
dim Speed as single
Speed = 80
Dim name_player as string
DIM AS STRING Rang = "Rla2.txt"
DIM AS INTEGER fg = FREEFILE
Dim as single punkt=freefile
DIM AS string Namen = "Rla2.txt"
OPEN rang FOR INPUT AS #fg
INPUT #fg ,Namen,Punkt
color rgb (0,255,0)
do
Locate 1,1
input "What is your name? ", name_player
loop until name_player <>""
locate 50,30
PRINT "Rekord: ",Namen,Punkt
CLOSE #fg
sLEEP
'Mp3
#INCLUDE "fmod.bi"
' 48kHz sample rate, 8 channels.
FSOUND_Init(48000, 8, 0)
DIM mp3Sound(1 to 100) AS INTEGER PTR
Locate 2,1
Print "Loading Soundtracks..."
DIM Background_Music AS STRING="Sounz\Background.mp3"
DIM Crash_Sound AS STRING="Sounz\Crash1.mp3"
DIM Laser_Sound AS STRING="Sounz\Laser1.mp3"
DIM Laser_Crash AS STRING="Sounz\Crash2.mp3"
mp3Sound(1) = FSOUND_Sample_Load(FSOUND_FREE, Background_Music, 0, 0, 0)
mp3Sound(2) = FSOUND_Sample_Load(FSOUND_FREE,Crash_Sound, 0, 0, 0)
mp3Sound(3) = FSOUND_Sample_Load(FSOUND_FREE,Laser_Sound, 0, 0, 0)
mp3Sound(4) = FSOUND_Sample_Load(FSOUND_FREE,Laser_Crash, 0, 0, 0)
'Musik Starten und endlos wiederholen
FSOUND_Sample_SetMode(mp3Sound(1), FSOUND_LOOP_NORMAL)
FSOUND_PlaySound(FSOUND_FREE, mp3Sound(1))
dim d as single
dim q as integer
for q = -20 to 20
next
dim zeit as double
Dim Jesus(1 to 200,1 to 4,1 to 2) as integer
dim zahl as integer
for zahl = 1 to 200
Jesus(zahl,1,1) = rnd*1024
Jesus(zahl,1,2) = rnd*768
Jesus(zahl,2,1) = rnd*1024
Jesus(zahl,2,2) = rnd*768
Jesus(zahl,3,1) = rnd*1024
Jesus(zahl,3,2) = rnd*768
Jesus(zahl,4,1) = rnd*1024
Jesus(zahl,4,2) = rnd*768
next
Dim Moses(1 to 5,1 to 2) as integer
dim zahly as integer
for zahly = 1 to 5
Moses(zahly,1) = rnd*1024+900
Moses(zahly,2) = rnd*688
next
Dim Live as single
Live = 3
dim LZ as integer
for LZ = 1 to Live
next
Dim Laser_Shot(1 to 15,1 to 2) as integer
dim shoot_counter as integer
do
screenlock
cls
zeit = timer
'Lebens anzeige
'Steuerung des eigenen Raumschiffes
if multikey(&h48) then c=c-10 end if
if multikey(&h50) then c=c+10 end if
if multikey(&h10) then
end
end if
if c <0 then
c=0
end if
if c > 688 then
c=688
end if
'Laser
If multikey(&h1C) and shoot_counter = 0 then
'Leere Variabel suchen
For Zahl = 1 to 15
if laser_shot(zahl,1) = 0 then
exit for
end if
next
FSOUND_Sample_SetMode(mp3Sound(3), FSOUND_NORMAL)
FSOUND_PlaySound(FSOUND_FREE, mp3Sound(3))
laser_shot(zahl,1) = 80
laser_shot(zahl,2) = c
shoot_counter = 10
end if
'Sterne
for zahl = 1 to 200
Jesus(zahl,1,1) = Jesus(zahl,1,1) - 1
Jesus(zahl,2,1) = Jesus(zahl,2,1) - 2
Jesus(zahl,3,1) = Jesus(zahl,3,1) - 3
Jesus(zahl,4,1) = Jesus(zahl,4,1) - 10
pset (Jesus(zahl,1,1),Jesus(zahl,1,2)),rgb(255,255,255)
pset (Jesus(zahl,2,1),Jesus(zahl,2,2)),rgb(255,255,255)
pset (Jesus(zahl,3,1),Jesus(zahl,3,2)),rgb(255,255,255)
pset (Jesus(zahl,4,1),Jesus(zahl,4,2)),rgb(255,255,255)
if Jesus(zahl,1,1)<0 then Jesus(zahl,1,1)=1024 end if
if Jesus(zahl,2,1)<0 then Jesus(zahl,2,1)=1024 end if
if Jesus(zahl,3,1)<0 then Jesus(zahl,3,1)=1024 end if
if Jesus(zahl,4,1)<0 then Jesus(zahl,4,1)=1024 end if
next
'Feinde
for zahly = 1 to 5
Moses(zahly,1) = Moses(zahly,1) - 6
for zahl = 1 to 15
for q = -40 to 40
'Elimination durch Laser
if Moses(zahly,1)=laser_shot(zahl,1)+q+20 and Moses(zahly,2)>laser_shot(zahl,2)+q and Moses(zahly,2)<laser_shot(zahl,2)-q and moses(zahly,1)<1000 and moses(zahly,1)>130 then
moses(zahly,1)=1024+rnd*55
moses(zahly,2)=rnd*688
FSOUND_Sample_SetMode(mp3Sound(4), FSOUND_NORMAL)
FSOUND_PlaySound(FSOUND_FREE, mp3Sound(4))
Punkte=Punkte+100
Speed=Speed+1
end if
'Ins Raumschiff reinfahren
if Moses(zahly,1)<b+80 and Moses(zahly,2)=c+q and moses(zahly,1) > 15 then
FSOUND_Sample_SetMode(mp3Sound(2), FSOUND_NORMAL)
FSOUND_PlaySound(FSOUND_FREE, mp3Sound(2))
Live=Live-1
moses(zahly,1)=1024+rnd*55
moses(zahly,2)=rnd*688
end if
next
next
if Moses(zahly,1)<-80 then
moses(zahly,1)=1024+rnd*55
moses(zahly,2)=rnd*688
end if
put (moses(zahly,1),Moses(zahly,2)), enemy , trans
next
'Läbu
if live > 0 Then
Put (490,10), leben , trans
if live > 1 then
Put (505,10), leben , trans
if live > 2 then
Put (520,10), leben , trans
end if
end if
end if
if live <= 0 then
screenunlock
cls
Locate 20,30
Print "Player: ";Name_Player
Locate 20,70
Print"Punkte: ";Punkte
Locate 35,30
Print "Nochmal Spielen? ";"Drücke J fuer Ja, N fuer Nein"
if Punkte>punkt then
OPEN rang FOR OUTPUT AS #fg
OPEN rang FOR OUTPUT AS #fg
PRINT #fg ,name_player,punkte
CLOSE #fg
end if
do
if multikey(&h24) then
Live= 3
Punkte=0
Speed = 80
c=50
for zahly = 1 to 5
moses(zahly,1)=rnd*1024+1000
moses(zahly,2)=rnd*688
next
end if
if multikey(&h31) then
end
end if
loop until Live=3
end if
For Zahl = 1 to 15
if laser_shot(zahl,1) <> 0 then
laser_shot(zahl,1)=laser_shot(zahl,1)+25
if live>0 then
put (laser_shot(zahl,1),laser_shot(zahl,2)),laser, trans
if laser_shot(zahl,1)>1024 then
laser_shot(zahl,1)=0
end if
end if
end if
next
Put (b,c), jude , trans
if shoot_counter > 0 then shoot_counter = shoot_counter - 1 end if
Locate 2,1
print "Punkte: " ; Punkte
do
loop until zeit + (1/Speed) < timer
pcopy 0,1
screenunlock
loop until Fertig<>1
sleep |
Wenns was hilft...
PS: ich bin Blutiger anfänger
und sorry für die dumme namens gebung... |
|
Nach oben |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 956 Wohnort: Austria
|
Verfasst am: 28.12.2009, 17:32 Titel: |
|
|
Der Fehler ist eigentlich ganz simpel:
Du musst "Write #" statt "Print #" verwenden, damit du mit "Input #" die Daten wieder lesen kannst.
Abgeänderte Datei (hab auch noch die Variablenbezeichnungen zum Speichern/Öffnen geändert, da diese recht verwirrend sind):
Code: | Randomize Timer
ScreenRes 1024, 768 ,32 , 1,&H01
SetMouse 0,0,0
Dim enemy As Any Ptr = ImageCreate( 80, 80 )
Dim jude As Any Ptr = ImageCreate( 80, 80 )
BLoad "Grafix\Player.bmp", jude
BLoad "Grafix\enemy.bmp", enemy
Dim Laser As Any Ptr = ImageCreate( 80, 80 )
BLoad "Grafix\Laser.bmp", Laser
Dim Leben As Any Ptr = ImageCreate( 13, 13 )
BLoad "Grafix\Leben.bmp", Leben
Dim Punkte As Single
Punkte = 0
Dim b As Single
b =50
Dim Fertig As Single
Fertig = 1
Dim c As Single
c = 50
Dim Speed As Single
Speed = 80
Dim name_player As String
Dim As String RangDatei = "Rla2.txt"
Dim As Integer FF = FreeFile
Dim As String RekordName = ""
Dim As Integer RekordPunkte = 0
Open RangDatei For Input As #FF
Input #FF, RekordName, RekordPunkte
Close #FF
Color RGB (0,255,0)
Do
Locate 1,1
Input "What is your name? ", name_player
Loop Until name_player <>""
Locate 50,30
Print "Rekord: ",RekordName,RekordPunkte
Sleep
'Mp3
#Include "fmod.bi"
' 48kHz sample rate, 8 channels.
FSOUND_Init(48000, 8, 0)
Dim mp3Sound(1 To 100) As Integer Ptr
Locate 2,1
Print "Loading Soundtracks..."
Dim Background_Music As String="Sounz\Background.mp3"
Dim Crash_Sound As String="Sounz\Crash1.mp3"
Dim Laser_Sound As String="Sounz\Laser1.mp3"
Dim Laser_Crash As String="Sounz\Crash2.mp3"
mp3Sound(1) = FSOUND_Sample_Load(FSOUND_FREE, Background_Music, 0, 0, 0)
mp3Sound(2) = FSOUND_Sample_Load(FSOUND_FREE,Crash_Sound, 0, 0, 0)
mp3Sound(3) = FSOUND_Sample_Load(FSOUND_FREE,Laser_Sound, 0, 0, 0)
mp3Sound(4) = FSOUND_Sample_Load(FSOUND_FREE,Laser_Crash, 0, 0, 0)
'Musik Starten und endlos wiederholen
FSOUND_Sample_SetMode(mp3Sound(1), FSOUND_LOOP_NORMAL)
FSOUND_PlaySound(FSOUND_FREE, mp3Sound(1))
Dim d As Single
Dim q As Integer
For q = -20 To 20
Next
Dim zeit As Double
Dim Jesus(1 To 200,1 To 4,1 To 2) As Integer
Dim zahl As Integer
For zahl = 1 To 200
Jesus(zahl,1,1) = Rnd*1024
Jesus(zahl,1,2) = Rnd*768
Jesus(zahl,2,1) = Rnd*1024
Jesus(zahl,2,2) = Rnd*768
Jesus(zahl,3,1) = Rnd*1024
Jesus(zahl,3,2) = Rnd*768
Jesus(zahl,4,1) = Rnd*1024
Jesus(zahl,4,2) = Rnd*768
Next
Dim Moses(1 To 5,1 To 2) As Integer
Dim zahly As Integer
For zahly = 1 To 5
Moses(zahly,1) = Rnd*1024+900
Moses(zahly,2) = Rnd*688
Next
Dim Live As Single
Live = 3
Dim LZ As Integer
For LZ = 1 To Live
Next
Dim Laser_Shot(1 To 15,1 To 2) As Integer
Dim shoot_counter As Integer
Do
ScreenLock
Cls
zeit = Timer
'Lebens anzeige
'Steuerung des eigenen Raumschiffes
If MultiKey(&h48) Then c=c-10 End If
If MultiKey(&h50) Then c=c+10 End If
If MultiKey(&h10) Then
End
End If
If c <0 Then
c=0
End If
If c > 688 Then
c=688
End If
'Laser
If MultiKey(&h1C) And shoot_counter = 0 Then
'Leere Variabel suchen
For Zahl = 1 To 15
If laser_shot(zahl,1) = 0 Then
Exit For
End If
Next
FSOUND_Sample_SetMode(mp3Sound(3), FSOUND_NORMAL)
FSOUND_PlaySound(FSOUND_FREE, mp3Sound(3))
laser_shot(zahl,1) = 80
laser_shot(zahl,2) = c
shoot_counter = 10
End If
'Sterne
For zahl = 1 To 200
Jesus(zahl,1,1) = Jesus(zahl,1,1) - 1
Jesus(zahl,2,1) = Jesus(zahl,2,1) - 2
Jesus(zahl,3,1) = Jesus(zahl,3,1) - 3
Jesus(zahl,4,1) = Jesus(zahl,4,1) - 10
PSet (Jesus(zahl,1,1),Jesus(zahl,1,2)),RGB(255,255,255)
PSet (Jesus(zahl,2,1),Jesus(zahl,2,2)),RGB(255,255,255)
PSet (Jesus(zahl,3,1),Jesus(zahl,3,2)),RGB(255,255,255)
PSet (Jesus(zahl,4,1),Jesus(zahl,4,2)),RGB(255,255,255)
If Jesus(zahl,1,1)<0 Then Jesus(zahl,1,1)=1024 End If
If Jesus(zahl,2,1)<0 Then Jesus(zahl,2,1)=1024 End If
If Jesus(zahl,3,1)<0 Then Jesus(zahl,3,1)=1024 End If
If Jesus(zahl,4,1)<0 Then Jesus(zahl,4,1)=1024 End If
Next
'Feinde
For zahly = 1 To 5
Moses(zahly,1) = Moses(zahly,1) - 6
For zahl = 1 To 15
For q = -40 To 40
'Elimination durch Laser
If Moses(zahly,1)=laser_shot(zahl,1)+q+20 And Moses(zahly,2)>laser_shot(zahl,2)+q And Moses(zahly,2)<laser_shot(zahl,2)-q And moses(zahly,1)<1000 And moses(zahly,1)>130 Then
moses(zahly,1)=1024+Rnd*55
moses(zahly,2)=Rnd*688
FSOUND_Sample_SetMode(mp3Sound(4), FSOUND_NORMAL)
FSOUND_PlaySound(FSOUND_FREE, mp3Sound(4))
Punkte=Punkte+100
Speed=Speed+1
End If
'Ins Raumschiff reinfahren
If Moses(zahly,1)<b+80 And Moses(zahly,2)=c+q And moses(zahly,1) > 15 Then
FSOUND_Sample_SetMode(mp3Sound(2), FSOUND_NORMAL)
FSOUND_PlaySound(FSOUND_FREE, mp3Sound(2))
Live=Live-1
moses(zahly,1)=1024+Rnd*55
moses(zahly,2)=Rnd*688
End If
Next
Next
If Moses(zahly,1)<-80 Then
moses(zahly,1)=1024+Rnd*55
moses(zahly,2)=Rnd*688
End If
Put (moses(zahly,1),Moses(zahly,2)), enemy , Trans
Next
'Läbu
If live > 0 Then
Put (490,10), leben , Trans
If live > 1 Then
Put (505,10), leben , Trans
If live > 2 Then
Put (520,10), leben , Trans
End If
End If
End If
If live <= 0 Then
ScreenUnlock
Cls
Locate 20,30
Print "Player: ";Name_Player
Locate 20,70
Print"Punkte: ";Punkte
Locate 35,30
Print "Nochmal Spielen? ";"Drücke J fuer Ja, N fuer Nein"
If Punkte>RekordPunkte Then
Open RangDatei For Output As #FF
write #FF, name_player, punkte
Close #FF
RekordPunkte = punkte 'Neuen Rekord gleich übernehmen
RekordName = name_player
End If
Do
If MultiKey(&h24) Then
Live= 3
Punkte=0
Speed = 80
c=50
For zahly = 1 To 5
moses(zahly,1)=Rnd*1024+1000
moses(zahly,2)=Rnd*688
Next
End If
If MultiKey(&h31) Then
End
End If
Loop Until Live=3
End If
For Zahl = 1 To 15
If laser_shot(zahl,1) <> 0 Then
laser_shot(zahl,1)=laser_shot(zahl,1)+25
If live>0 Then
Put (laser_shot(zahl,1),laser_shot(zahl,2)),laser, Trans
If laser_shot(zahl,1)>1024 Then
laser_shot(zahl,1)=0
End If
End If
End If
Next
Put (b,c), jude , Trans
If shoot_counter > 0 Then shoot_counter = shoot_counter - 1 End If
Locate 2,1
Print "Punkte: " ; Punkte
Do
Loop Until zeit + (1/Speed) < Timer
PCopy 0,1
ScreenUnlock
Loop Until Fertig<>1
Sleep |
_________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken)
Zuletzt bearbeitet von St_W am 28.12.2009, 17:37, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 28.12.2009, 17:35 Titel: |
|
|
Ich komme noch nicht genau dahinter, wann da ein Fehler auftritt. Ich habe den Quellcode neu compiliert, und das Spiel speichert mir am Ende meinen Spielstand, wenn er größer ist als der schon gespeicherte. Auch die 0, die du erwähnst, finde ich nicht. Oder kommt die von FMOD? Ich habe die gesamte Sound-Ausgabe auskommentiert, weil bei mir nicht installiert.
Tritt das Problem bei dir immer auf oder nur unter bestimmten Umständen?
edit: komisch, bei mir funktioniert PRINT # sehr gut.  _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Grassstunger
Anmeldungsdatum: 27.12.2009 Beiträge: 11
|
Verfasst am: 28.12.2009, 18:50 Titel: |
|
|
danke st w, das funzt prima, wie findet ihr das spiel bis jetzt(ist natürlich noch nicht fertig)? |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|