problem mit abspeichern von vars ; update problem eingegrenz

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

US-Blitz

ehemals "SimssmiS"

Betreff: problem mit abspeichern von vars ; update problem eingegrenz

BeitragDo, Jun 03, 2010 12:08
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich habe einen lev editor für mein derzeitiges jump and run game gebaut der Boden hat die anzahl der variable tamplates die nüsse nussanz zucker zuckeranz und die gegner gegneranz wenn ich den speicherbefehl aber ausführe werden gegner zucker und nüsse beim erneuten laden aber auf 0,0 gezeichnet könntet ihr die fraglichen teile mal überprüfen selber finde ich die fehler leider nicht
Code: [AUSKLAPPEN]
Dim xbackg(50)
Dim ybackg(50)
Dim xbacko(1000)
Dim ybacko(1000)
Dim xbackn(20)
Dim ybackn(20)
Dim xbackz(5)
Dim ybackz(5)
If lev<1 Or lev>10 And lev<>105876 Then RuntimeError "Level Existiert nicht"
If lev=1 Then lev=ReadFile ("Spiel\Level\Lev 1\lev.dat")
If lev=2 Then lev=ReadFile ("Spiel\Level\Lev 2\lev.dat")
If lev=3 Then lev=ReadFile ("Spiel\Level\Lev 3\lev.dat")
If lev=4 Then lev=ReadFile ("Spiel\Level\Lev 4\lev.dat")
If lev=5 Then lev=ReadFile ("Spiel\Level\Lev 5\lev.dat")
If lev=6 Then lev=ReadFile ("Spiel\Level\Lev 6\lev.dat")
If lev=7 Then lev=ReadFile ("Spiel\Level\Lev 7\lev.dat")
If lev=8 Then lev=ReadFile ("Spiel\Level\Lev 8\lev.dat")
If lev=9 Then lev=ReadFile ("Spiel\Level\Lev 9\lev.dat")
If lev=10 Then lev=ReadFile ("Spiel\Level\Lev 10\lev.dat")
If lev=105876 Then Goto test
Tamplates=ReadInt( lev )
tampart=ReadInt( lev )
tampartchange=ReadInt( lev )
tampartchangein=ReadInt( lev )
tamplatessave=ReadInt( lev )
For i=1 To Tamplatessave
xbacko(i)=ReadInt( lev )
ybacko(i)=ReadInt( lev )
Next

gegneranz=ReadInt( lev )
gegnerart=ReadInt( lev )
gegneranzsave=ReadInt( Lev )
For i=1 To gegneranzsave
xbackg(i)=ReadInt( lev )
ybackg(i)=ReadInt( lev )
Next

nussanz=ReadInt( lev )
nussanzsave=ReadInt( Lev )
For i=1 To nussanzsave
xbackn(i)=ReadInt( lev )
ybackn(i)=ReadInt( lev )
Next

zuckeranz=ReadInt( lev )
zuckeranzsave=ReadInt(Lev)
For i=1 To zuckeranzsave
xbackz(i)=ReadInt( lev )
ybackz(i)=ReadInt( lev )
Next
CloseFile( lev )
Code: [AUSKLAPPEN]
;zeichnen
.zeichnen
For i1=1 To tamplates
If i1>=tampartchange Then
DrawImage Bodenchanged,backx+xbacko(i1),backy+ybacko(i1)
Else DrawImage Boden,backx+xbacko(i1),backy+ybacko(i1)
EndIf
Next
If gegneranz>0 Then
For i2=1 To gegneranz
DrawImage gegner,backx+xbackg(i2),backy+ybackg(i2)
Next
EndIf
If nussanz>0 Then
For i3=1 To nussanz
DrawImage erdnuss,backx+xbackn(i3),backy+ybackn(i3)
Next
EndIf
If zuckeranz>0 Then
For i4=1 To zuckeranz
DrawImage zucker,backx+xbackz(i4),backy+ybackz(i4)
Next
EndIf
Return
Code: [AUSKLAPPEN]
;save
.save
If levsave=1 Then lev=WriteFile ("Spiel\Level\Lev 1\lev.dat")
If levsave=2 Then lev=WriteFile ("Spiel\Level\Lev 2\lev.dat")
If levsave=3 Then lev=WriteFile ("Spiel\Level\Lev 3\lev.dat")
If levsave=4 Then lev=WriteFile ("Spiel\Level\Lev 4\lev.dat")
If levsave=5 Then lev=WriteFile ("Spiel\Level\Lev 5\lev.dat")
If levsave=6 Then lev=WriteFile ("Spiel\Level\Lev 6\lev.dat")
If levsave=7 Then lev=WriteFile ("Spiel\Level\Lev 7\lev.dat")
If levsave=8 Then lev=WriteFile ("Spiel\Level\Lev 8\lev.dat")
If levsave=9 Then lev=WriteFile ("Spiel\Level\Lev 9\lev.dat")
If levsave=10 Then lev=WriteFile ("Spiel\Level\Lev 10\lev.dat")

WriteInt ( lev, Tamplates )
WriteInt ( lev, tampart )
WriteInt ( lev, tampartchange )
WriteInt ( lev, tampartchangein )
WriteInt ( lev, Tamplatessave )
For i=1 To Tamplatessave
WriteInt ( lev, xbacko(i) )
WriteInt ( lev, ybacko(i) )
Next

WriteInt ( lev, gegneranz )
WriteInt ( lev, gegnerart )
WriteInt ( lev, gegneranzsave )
For i=1 To gegneranzsave
WriteInt ( lev, xbackg(i) )
WriteInt ( lev, ybackg(i) )
Next

WriteInt ( lev, nussanz )
WriteInt ( lev, nussanzsave )
For i=1 To nussanzsave
WriteInt ( lev, xbackn(i) )
WriteInt ( lev, ybackn(i) )
Next

WriteInt ( lev, zuckeranz )
WriteInt ( lev, zuckeranzsave )
For i=1 To zuckeranzsave
WriteInt ( lev, xbackz(i) )
WriteInt ( lev, ybackz(i) )
Next
CloseFile( lev )
Return
beim boden ist jedoch alles in ordnung

es liegt am setzen der vars von positionen das zuletzt gezeichnete wird nicht gespiecher hier der code der boden ist immer noch problemlos Code: [AUSKLAPPEN]
;Maussteuerung fürs zeichnen


For r=0 To 20
For i=0 To 8
If MouseX()=>i*150 And MouseX()<i*150+150 And MouseY()>=r*50+24 And MouseY()<=r*50+24+50 And mhit1=1 And zeichenart=1 Then
If undo1=1 Then undo1=0
tamplates=tamplates+1
tamplatessave=tamplates
xbacko(tamplates)=backx/-1+i*150
ybacko(tamplates)=backy/-1+r*50+24
Gosub zeichnen
If tamplates<tampartchangesave Then tampartchangesave=1000
EndIf
If MouseX()=>i*150 And MouseX()<i*150+150 And MouseY()>=r*50+24 And MouseY()<=r*50+24+50 And mhit1=1 And zeichenart=2 Then
If undo2=1 Then undo2=0
gegneranzsave=gegneranz
gegneranz=gegneranz+1
xbackg(gegneranz)=backx/-1+i*150+30
ybackg(gegneranz)=backy/-1+r*50-26
EndIf
If MouseX()=>i*150 And MouseX()<i*150+150 And MouseY()>=r*50+24 And MouseY()<=r*50+24+50 And mhit1=1 And zeichenart=3 Then
If undo3=1 Then undo3=0
nussanzsave=nussanz
nussanz=nussanz+1
xbackn(nussanz)=backx/-1+i*150+50
ybackn(nussanz)=backy/-1+r*50+24
EndIf
If MouseX()=>i*150 And MouseX()<i*150+150 And MouseY()>=r*50+24 And MouseY()<=r*50+24+50 And mhit1=1 And zeichenart=4 Then
If undo4=1 Then undo4=0
zuckeranzsave=zuckeranz
zuckeranz=zuckeranz+1
xbackz(zuckeranz)=backx/-1+i*150+50
ybackz(zuckeranz)=backy/-1+r*50+44
EndIf
Next
Next
;


~EDITIERT~

Überlange zusammenhängende Kommentarzeilen sind in unserem Forum nicht erwünscht, weil sie das Layout verhunzen. Also in Zukunft: Solche Kommentare beim Posten entfernen, bearbeiten oder am allerbesten gleich von Anfang an vermeiden.
mfG Holzchopf
  • Zuletzt bearbeitet von US-Blitz am Do, Jun 03, 2010 15:25, insgesamt 4-mal bearbeitet

Hubsi

BeitragDo, Jun 03, 2010 12:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Lass Dir die Werte beim speichern in den Debuglog ausgeben. Rein vom Code her kann ich keinen Fehler entdecken der Dein Problem auslösen könnte.

Tip:
BlitzBasic: [AUSKLAPPEN]
; Das hier:

If levsave=1 Then lev=WriteFile ("Spiel\Level\Lev 1\lev.dat")
If levsave=2 Then lev=WriteFile ("Spiel\Level\Lev 2\lev.dat")
If levsave=3 Then lev=WriteFile ("Spiel\Level\Lev 3\lev.dat")
If levsave=4 Then lev=WriteFile ("Spiel\Level\Lev 4\lev.dat")
If levsave=5 Then lev=WriteFile ("Spiel\Level\Lev 5\lev.dat")
If levsave=6 Then lev=WriteFile ("Spiel\Level\Lev 6\lev.dat")
If levsave=7 Then lev=WriteFile ("Spiel\Level\Lev 7\lev.dat")
If levsave=8 Then lev=WriteFile ("Spiel\Level\Lev 8\lev.dat")
If levsave=9 Then lev=WriteFile ("Spiel\Level\Lev 9\lev.dat")
If levsave=10 Then lev=WriteFile ("Spiel\Level\Lev 10\lev.dat")

; könnte auch so aussehen:

lev=WriteFile ("Spiel\Level\Lev "+levsave+"\lev.dat")
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

US-Blitz

ehemals "SimssmiS"

BeitragDo, Jun 03, 2010 12:29
Antworten mit Zitat
Benutzer-Profile anzeigen
auch so habe ich nichts gefunden und dass mit dem tipp klappt kleider nich das zu verkürzen dann sagt der Stream does not exsist naja das is auch nich weiter schlimm würde es euch helfen wenn ich den ganzen code mal rausgebe der leider unstrukturiert is da ich nicht aleine programiere und mein partner nichts von ordnen hällt Rolling Eyes

Hubsi

BeitragDo, Jun 03, 2010 12:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Würde vielleicht was helfen. Pack das Ding mit allen Grafiken die man braucht zusammen und lads ins Archiv hoch. Das Problem kann leider von vielen Stellen herrühren und da ist mit Codeteilen meist nicht viel getan Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

US-Blitz

ehemals "SimssmiS"

BeitragDo, Jun 03, 2010 12:36
Antworten mit Zitat
Benutzer-Profile anzeigen
sorry kann die grafiken nicht rausgeben sind imm moment noch geschützte teile die nur als platzhalter dienen für unsen grafiker der nicht wirklich schnell is Code: [AUSKLAPPEN]
Graphics 1280,1024,32,1
SetBuffer BackBuffer()
SeedRnd MilliSecs()
ClsColor 31,97,183
Boden1=LoadImage ("Spiel\Bilder\Boden\Boden1.bmp")
Boden2=LoadImage ("Spiel\Bilder\Boden\Boden2.bmp")
Boden3=LoadImage ("Spiel\Bilder\Boden\Boden3.bmp")
Boden4=LoadImage ("Spiel\Bilder\Boden\Boden4.bmp")
Boden5=LoadImage ("Spiel\Bilder\Boden\Boden5.bmp")
Boden6=LoadImage ("Spiel\Bilder\Boden\Boden6.bmp")
Boden7=LoadImage ("Spiel\Bilder\Boden\Boden7.bmp")
Boden8=LoadImage ("Spiel\Bilder\Boden\Boden8.bmp")
Boden9=LoadImage ("Spiel\Bilder\Boden\Boden9.bmp")
Boden10=LoadImage ("Spiel\Bilder\Boden\Boden10.bmp")
Wasser=LoadImage ("Spiel\Bilder\Wasser.bmp")
erdnuss=LoadImage ("Spiel\Bilder\erdnuss.bmp")
MaskImage erdnuss,255,0,255
zucker=LoadImage ("Spiel\Bilder\zucker.bmp")
Gegner1=LoadImage ("Spiel\Bilder\Gegner\Gegner1.bmp")
MaskImage Gegner1,255,0,203
Gegner2=LoadImage ("Spiel\Bilder\Gegner\Gegner2.bmp")
MaskImage Gegner2,255,128,64
Gegner3=LoadImage ("Spiel\Bilder\Gegner\Gegner3.bmp")
MaskImage Gegner3,255,255,255
Gegner4=LoadImage ("Spiel\Bilder\Gegner\Gegner4.bmp")
MaskImage Gegner4,255,255,255
Gegner5=LoadImage ("Spiel\Bilder\Gegner\Gegner5.bmp")
MaskImage Gegner5,255,255,255
Cursor=LoadImage ("Menu\Bilder\Cursor.bmp")
bodenedit=LoadImage ("Spiel\Bilder\bodenedit.bmp")
MaskImage Cursor,220,220,220
Knopf_Back=LoadImage ("Menu\Bilder\Back.bmp")
MaskImage Knopf_Back,180,180,180
Knopf_Backan=LoadImage ("Menu\Bilder\Backan.bmp")
MaskImage Knopf_Backan,75,75,75
save_knopf=LoadImage ("Spiel\Bilder\save.bmp")
resetknopf1=LoadImage ("Spiel\Bilder\reset map 1.bmp")
MaskImage resetknopf1,7,9,8
resetknopf2=LoadImage ("Spiel\Bilder\reset map 2.bmp")
MaskImage resetknopf2,7,9,8
reset=2
resetknopf0=LoadImage ("Spiel\Bilder\reset map 0.bmp")
MaskImage resetknopf0,7,9,8
Knopf_save=LoadImage ("Spiel\Bilder\save.bmp")
lev=Input ("Welchen level willst du laden/erstellen? ")
MaskImage Knopf_save,7,9,8
levsave=lev
Knopf_delete2=LoadImage ("Spiel\Bilder\delete map 2.bmp")
Knopf_delete1=LoadImage ("Spiel\Bilder\delete map 1.bmp")
Knopf_delete0=LoadImage ("Spiel\Bilder\delete map 0.bmp")
MaskImage Knopf_Delete2,7,9,8
MaskImage Knopf_Delete1,7,9,8
MaskImage Knopf_Delete0,7,9,8
Knopf_Gegner=LoadImage ("Spiel\Bilder\Knopf_Gegner.bmp")
Dim xbackg(50)
Dim ybackg(50)
Dim xbacko(1000)
Dim ybacko(1000)
Dim xbackn(20)
Dim ybackn(20)
Dim xbackz(5)
Dim ybackz(5)
If lev<1 Or lev>10 And lev<>105876 Then RuntimeError "Level Existiert nicht"
If lev=1 Then lev=ReadFile ("Spiel\Level\Lev 1\lev.dat")
If lev=2 Then lev=ReadFile ("Spiel\Level\Lev 2\lev.dat")
If lev=3 Then lev=ReadFile ("Spiel\Level\Lev 3\lev.dat")
If lev=4 Then lev=ReadFile ("Spiel\Level\Lev 4\lev.dat")
If lev=5 Then lev=ReadFile ("Spiel\Level\Lev 5\lev.dat")
If lev=6 Then lev=ReadFile ("Spiel\Level\Lev 6\lev.dat")
If lev=7 Then lev=ReadFile ("Spiel\Level\Lev 7\lev.dat")
If lev=8 Then lev=ReadFile ("Spiel\Level\Lev 8\lev.dat")
If lev=9 Then lev=ReadFile ("Spiel\Level\Lev 9\lev.dat")
If lev=10 Then lev=ReadFile ("Spiel\Level\Lev 10\lev.dat")
If lev=105876 Then Goto test
Tamplates=ReadInt( lev )
tampart=ReadInt( lev )
tampartchange=ReadInt( lev )
tampartchangein=ReadInt( lev )
tamplatessave=ReadInt( lev )
For i=1 To Tamplatessave
xbacko(i)=ReadInt( lev )
ybacko(i)=ReadInt( lev )
Next

gegneranz=ReadInt( lev )
gegnerart=ReadInt( lev )
gegneranzsave=ReadInt( Lev )
For i=1 To gegneranzsave
xbackg(i)=ReadInt( lev )
ybackg(i)=ReadInt( lev )
Next

nussanz=ReadInt( lev )
nussanzsave=ReadInt( Lev )
For i=1 To nussanzsave
xbackn(i)=ReadInt( lev )
ybackn(i)=ReadInt( lev )
Next

zuckeranz=ReadInt( lev )
zuckeranzsave=ReadInt(Lev)
For i=1 To zuckeranzsave
xbackz(i)=ReadInt( lev )
ybackz(i)=ReadInt( lev )
Next
CloseFile( lev )
Gosub bodenchanged

Dim xbackosavedat(1000)
Dim ybackosavedat(1000)
Tamplatessavedat=Tamplates
tampartsavedat=tampart
tampartchangesavedat=tampartchange
tampartchangeinsavedat=tampartchangein
For i=1 To Tamplates
xbackosavedat(i)=xbacko(i)
ybackosavedat(i)=ybacko(i)
Next
deleteknopf=2
If tamplates<tamplatessave Then undo=1
tempfont=LoadFont("Comic Sans Ms",54,True,False,False )
font=LoadFont("Courier")


zeichenart=1
gegnerart=1
If gegnerart=1 Then gegner=gegner1
Repeat
back=0
Cls
If KeyHit(2) Then zeichenart=1
If KeyHit(3) Then zeichenart=2
If KeyHit(4) Then zeichenart=3
If KeyHit(5) Then zeichenart=4
If Reset=0 Then reset0=1
If Deleteknopf=0 Then Deleteknopf0=1
For i=0 To 20
Line 0,50*i+24,1280,50*i+24
Line 150*i,1024,150*i,24
Next
Gosub zeichnen
;Editor
mhit1=MouseHit(1)
mhit2=MouseHit(2)
;Maussteuerung fürs zeichnen

For r=0 To 20
For i=0 To 8
If MouseX()=>i*150 And MouseX()<i*150+150 And MouseY()>=r*50+24 And MouseY()<=r*50+24+50 And mhit1=1 And zeichenart=1 Then
If undo1=1 Then undo1=0
tamplates=tamplates+1
tamplatessave=tamplates
xbacko(tamplates)=backx/-1+i*150
ybacko(tamplates)=backy/-1+r*50+24
Gosub zeichnen
If tamplates<tampartchangesave Then tampartchangesave=1000
EndIf
If MouseX()=>i*150 And MouseX()<i*150+150 And MouseY()>=r*50+24 And MouseY()<=r*50+24+50 And mhit1=1 And zeichenart=2 Then
If undo2=1 Then undo2=0
gegneranzsave=gegneranz
gegneranz=gegneranz+1
xbackg(gegneranz)=backx/-1+i*150+30
ybackg(gegneranz)=backy/-1+r*50-26
EndIf
If MouseX()=>i*150 And MouseX()<i*150+150 And MouseY()>=r*50+24 And MouseY()<=r*50+24+50 And mhit1=1 And zeichenart=3 Then
If undo3=1 Then undo3=0
nussanzsave=nussanz
nussanz=nussanz+1
xbackn(nussanz)=backx/-1+i*150+50
ybackn(nussanz)=backy/-1+r*50+24
EndIf
If MouseX()=>i*150 And MouseX()<i*150+150 And MouseY()>=r*50+24 And MouseY()<=r*50+24+50 And mhit1=1 And zeichenart=4 Then
If undo4=1 Then undo4=0
zuckeranzsave=zuckeranz
zuckeranz=zuckeranz+1
xbackz(zuckeranz)=backx/-1+i*150+50
ybackz(zuckeranz)=backy/-1+r*50+44
EndIf
Next
Next
;
DrawImage bodenedit,0,0
If KeyHit(32) Then backx=backx-150
If backx<0 And KeyHit(30) Then backx=backx+150
If KeyHit(17) Then backy=backy+50
If backy>0 And KeyHit(31) backy=backy-50

If reset=2 Then
DrawImage resetknopf2,1050,0
ElseIf reset=1 Then
DrawImage resetknopf1,1050,0
Else DrawImage resetknopf0,1050,0
EndIf
If Deleteknopf=2 Then
DrawImage Knopf_delete2,900,0
ElseIf Deleteknopf=1 Then
DrawImage Knopf_delete1,900,0
Else DrawImage Knopf_delete0,900,0
EndIf

If MouseX()>=1050 And MouseX()<=1200 And MouseY()>=0 And MouseY()<=24 Then
If mhit1=1 Then reset=reset-1
If mhit2=1 And reset<2 Then reset=reset+1
EndIf
If MouseX()>=900 And MouseX()<=1050 And MouseY()>=0 And MouseY()<=24 Then
If mhit1=1 Then Deleteknopf=Deleteknopf-1
If mhit2=1 And Deleteknopf<2 Then Deleteknopf=Deleteknopf+1
EndIf
;
; repeat/undo
If KeyHit(211) Then
   If tamplates>0 And zeichenart=1 Then
      tamplates=tamplates-1
      undo1=1
      If tamplates<tampartchangesave Then tampartchange=1000
   EndIf
   If gegneranz>0 And zeichenart=2 Then
      gegneranz=gegneranz-1
      undo2=1
   EndIf
   If nussanz>0 And zeichenart=3 Then
      nussanz=nussanz-1
      undo3=1
   EndIf
   If zuckeranz>0 And zeichenart=4 Then
      zuckeranz=zuckeranz-1
      undo4=1
   EndIf
EndIf

If KeyHit(210) Then
   If tamplates<tamplatessave And zeichenart=1 And undo1=1 Then
      tamplates=tamplates+1
      If tamplates=tampartchangesave Then tampartchange=tampartchangesave
   EndIf
   If gegneranz<gegneranzsave And zeichenart=2 And undo2=1 Then
      gegneranz=gegneranz+1
   EndIf
   If nussanz<nussanzsave And zeichenart=3 And undo3=1 Then
      nussanz=nussanz+1
   EndIf
   If zuckeranz<zuckeranzsave And zeichenart=4 And undo4=1 Then
      zuckeranz=zuckeranz+1
   EndIf
EndIf


;



DrawImage Knopf_Gegner,150,0
DrawImage Knopf_Save,750,0
DrawImage Cursor,MouseX(),MouseY()
If MouseX()>=750 And MouseX()<=900 And MouseY()>=0 And MouseY()<=24 And mhit1=1 Then
tempfont=LoadFont("Comic Sans Ms",54,True,False,False )
SetFont tempfont
Text 400,450,"Saving"
Flip
SetFont font
Delay 500
Gosub save
EndIf
Flip

If MouseX()>=0 And MouseX()<=150 And MouseY()>=0 And MouseY()<=23 And mhit1=1 Then Gosub bodeneditieren
If reset0=1 Then reset0=0 Delay 800 Gosub reseting
If Deleteknopf0=1 Then Deleteknopf0=0 Delay 800 Gosub deleteing
Until KeyDown(1)

End





;Bodeneditiern
.bodeneditieren
tempfont=LoadFont("Comic Sans Ms",54,True,False,False )
SetFont tempfont
Repeat
Cls
Text 250,2,"Haupt Textur"
Text 750,2,"Zweit Textur"
For i=0 To 1
DrawImage boden1,300+i*500,50
DrawImage boden2,300+i*500,150
DrawImage boden3,300+i*500,250
DrawImage boden4,300+i*500,350
DrawImage boden5,300+i*500,450
DrawImage boden6,300+i*500,550
DrawImage boden7,300+i*500,650
DrawImage boden8,300+i*500,750
DrawImage boden9,300+i*500,850
DrawImage boden10,300+i*500,950
Next
DrawImage Knopf_Back,50,900
If MouseX()=>50 And MouseX()<=50+170 And MouseY()=>900 And MouseY()<=900+75 Then
DrawImage Knopf_Backan,50,900
If bac=0 Then PlayMusic ("Menu\Music\an.wav")
bac=1
If MouseDown(1) Then Back=1 PlayMusic ("Menu\Music\click.wav")
Else bac=0
EndIf

DrawImage Cursor,MouseX(),MouseY()
Flip
mhit1=MouseHit(1)
For i=0 To 9
If MouseX()>=300 And MouseX()<=450 And MouseY()>=i*100+50 And MouseY<=i*100+100 And mhit1=1 Then tampart=i+1
If MouseX()>=800 And MouseX()<=950 And MouseY()>=i*100+50 And MouseY<=i*100+100 And mhit1=1 Then
tampartchangein=i+1
If tampartchange>=1000 Then tampartchange=tamplates+1 tampartchangesave=tampartchange
EndIf
Next
If MouseX()=>50 And MouseX()<=50+170 And MouseY()=>900 And MouseY()<=900+75 Then
DrawImage Knopf_Backan,50,900
If bac=0 Then PlayMusic ("Menu\Music\an.wav")
bac=1
If MouseDown(1) Then Back=1 PlayMusic ("Menu\Music\click.wav")
Else bac=0
EndIf

Gosub bodenchanged
Until back=1
FreeFont tempfont
Return


;bodenchanged
.bodenchanged
If tampart=1 Then
Boden=boden1
ElseIf tampart=2 Then
Boden=boden2
ElseIf tampart=3 Then
Boden=boden3
ElseIf tampart=4 Then
Boden=boden4
ElseIf tampart=5 Then
Boden=boden5
ElseIf tampart=6 Then
Boden=boden6
ElseIf tampart=7 Then
Boden=boden7
ElseIf tampart=8 Then
Boden=boden8
ElseIf tampart=9 Then
Boden=boden9
ElseIf tampart=10 Then
Boden=boden10
EndIf

If tampartchangein=1 Then
Bodenchanged=boden1
ElseIf tampartchangein=2 Then
Bodenchanged=boden2
ElseIf tampartchangein=3 Then
Bodenchanged=boden3
ElseIf tampartchangein=4 Then
Bodenchanged=boden4
ElseIf tampartchangein=5 Then
Bodenchanged=boden5
ElseIf tampartchangein=6 Then
Bodenchanged=boden6
ElseIf tampartchangein=7 Then
Bodenchanged=boden7
ElseIf tampartchangein=8 Then
Bodenchanged=boden8
ElseIf tampartchangein=9 Then
Bodenchanged=boden9
ElseIf tampartchangein=10 Then
Bodenchanged=boden10
EndIf
Return







;zeichnen
.zeichnen
For i1=1 To tamplates
If i1>=tampartchange Then
DrawImage Bodenchanged,backx+xbacko(i1),backy+ybacko(i1)
Else DrawImage Boden,backx+xbacko(i1),backy+ybacko(i1)
EndIf
Next
If gegneranz>0 Then
For i2=1 To gegneranz
DrawImage gegner,backx+xbackg(i2),backy+ybackg(i2)
Next
EndIf
If nussanz>0 Then
For i3=1 To nussanz
DrawImage erdnuss,backx+xbackn(i3),backy+ybackn(i3)
Next
EndIf
If zuckeranz>0 Then
For i4=1 To zuckeranz
DrawImage zucker,backx+xbackz(i4),backy+ybackz(i4)
Next
EndIf
Return



;reset
.reseting
Tamplates=Tamplatessavedat
tampart=tampartsavedat
tampartchange=tampartchangesavedat
tampartchangein=tampartchangeinsavedat
For i=1 To Tamplates
xbacko(i)=xbackosavedat(i)
ybacko(i)=ybackosavedat(i)
Next
tamplatessave=tamplates
reset=2
Return

;Delete
.deleteing
tamplates=0
tampartchange=1000
tamplatessave=0
gegneranz=0
nussanz=0
zuckeranz=0
deleteknopf=2
Return



;save
.save
If levsave=1 Then lev=WriteFile ("Spiel\Level\Lev 1\lev.dat")
If levsave=2 Then lev=WriteFile ("Spiel\Level\Lev 2\lev.dat")
If levsave=3 Then lev=WriteFile ("Spiel\Level\Lev 3\lev.dat")
If levsave=4 Then lev=WriteFile ("Spiel\Level\Lev 4\lev.dat")
If levsave=5 Then lev=WriteFile ("Spiel\Level\Lev 5\lev.dat")
If levsave=6 Then lev=WriteFile ("Spiel\Level\Lev 6\lev.dat")
If levsave=7 Then lev=WriteFile ("Spiel\Level\Lev 7\lev.dat")
If levsave=8 Then lev=WriteFile ("Spiel\Level\Lev 8\lev.dat")
If levsave=9 Then lev=WriteFile ("Spiel\Level\Lev 9\lev.dat")
If levsave=10 Then lev=WriteFile ("Spiel\Level\Lev 10\lev.dat")

WriteInt ( lev, Tamplates )
WriteInt ( lev, tampart )
WriteInt ( lev, tampartchange )
WriteInt ( lev, tampartchangein )
WriteInt ( lev, Tamplatessave )
For i=1 To Tamplatessave
WriteInt ( lev, xbacko(i) )
WriteInt ( lev, ybacko(i) )
Next

WriteInt ( lev, gegneranz )
WriteInt ( lev, gegnerart )
WriteInt ( lev, gegneranzsave )
For i=1 To gegneranzsave
WriteInt ( lev, xbackg(i) )
WriteInt ( lev, ybackg(i) )
Next

WriteInt ( lev, nussanz )
WriteInt ( lev, nussanzsave )
For i=1 To nussanzsave
WriteInt ( lev, xbackn(i) )
WriteInt ( lev, ybackn(i) )
Next

WriteInt ( lev, zuckeranz )
WriteInt ( lev, zuckeranzsave )
For i=1 To zuckeranzsave
WriteInt ( lev, xbackz(i) )
WriteInt ( lev, ybackz(i) )
Next
CloseFile( lev )
Return




.test
Repeat
Cls
DrawImage gegner1,0,0
DrawImage gegner2,0,110
DrawImage gegner3,0,220
DrawImage gegner4,0,330
DrawImage gegner5,0,440
Flip
Until KeyHit(1)
End


~EDITIERT~

Überlange zusammenhängende Kommentarzeilen sind in unserem Forum nicht erwünscht, weil sie das Layout verhunzen. Also in Zukunft: Solche Kommentare beim Posten entfernen, bearbeiten oder am allerbesten gleich von Anfang an vermeiden.
mfG Holzchopf

Hubsi

BeitragDo, Jun 03, 2010 12:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Puh, der Code ist Chaos Mr. Green Selbst IDEal bekommt den augenscheinlich nicht korrekt eingerückt. Also wenn Ihr die Bilder nicht rausgeben könnt dann eine der Leveldateien? Die LoadImage's kann ich noch durch wilde Create's ersetzen, aber damit dann noch was zu erstellen ist dann langsam zu aufwendig Very Happy

Edit: Lass stecken wegen meiner. Ich kann Dir da nicht helfen. Nachdem er mir beim Versuch ein Level auf die Schnelle zu erstellen einfach abkackt, weil die Datei nicht exisitiert und ich im Code nicht mehr durchblicke klinke ich mich an der Stelle aus. Um euer selbst Willen solltet Ihr die ganze Struktur nochmal überdenken und Kommentare setzen wenn nötig. So verliert Ihr nach ein paar Tagen Pause selbst den Überblick, das ist beinahe sicher Mr. Green
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
  • Zuletzt bearbeitet von Hubsi am Do, Jun 03, 2010 13:12, insgesamt einmal bearbeitet

US-Blitz

ehemals "SimssmiS"

BeitragDo, Jun 03, 2010 13:09
Antworten mit Zitat
Benutzer-Profile anzeigen
https://www.blitzforum.de/upload/file.php?id=8695
und sorry wegen den Bildern

Midimaster

BeitragDo, Jun 03, 2010 13:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Da müssen deutlich mehr DEBUGLOGs rein. Sonst kannst du nie feststellen, ob der Fehler schon beim Schreiben oder beim Lesen entsteht.

Eine mögliche Ursache für das Fehler der Koordinaten ist eine eventuell fehlerhafte Variable BlitzBasic: [AUSKLAPPEN]
tamplatessave
. Durch sie würde keine FOR/NEXT-Schleife zustandekommen. Das wäre eine denkbare Ursache.

mehr DEBUGLOG:

BlitzBasic: [AUSKLAPPEN]
Tamplates=ReadInt( lev )
DebugLog " Tamplates= " + Tamplates

tampart=ReadInt( lev )
tampartchange=ReadInt( lev )
tampartchangein=ReadInt( lev )
tamplatessave=ReadInt( lev )
DebugLog " TamplateSave= " + TamplateSave

For i=1 To Tamplatessave
xbacko(i)=ReadInt( lev )
ybacko(i)=ReadInt( lev )
DebugLog i+ ".tes X/Y= " + xbacko(i) + "/" + xbacko(i)
Next


Entsprechendes auch beim Saven

Lies mal mein Fehler finden Tutorial:

https://www.blitzforum.de/foru...hp?t=33510

US-Blitz

ehemals "SimssmiS"

BeitragDo, Jun 03, 2010 15:27
Antworten mit Zitat
Benutzer-Profile anzeigen
gelöst danke update geschrieben und dann is mir die lösung gekommen

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group