ich habe im Moment einen komischen Fehler in meinem Programm (2D-Spiel). Das Programm soll eine Textdatei auslesen, die folgendermaßen aufgebaut ist:
Code: Alles auswählen
wall(30)
wall(1):way(28):wall(1)
Uploaded with ImageShack.us
In der zweiten Reihe sollte allerdings links und rechts nur einmal das Mauern-Bild sein und dazwischen Weg. Einen Fehler habe ich nicht gefunden, was eigentlich heißen müsste, dass mein Gehirn verkontet ist
Kann mir einer helfen?
level_script.pbi:
Code: Alles auswählen
Declare GetSingleBlock(line.s, lineNumber)
Declare GetMultipleBlock(line.s, lineNumber, anzBlocks)
Procedure DrawLevelOnScreen(lvl.s)
lFile = ReadFile(#PB_Any, ProgramPath$+"level\"+lvl+".lvl")
lineNo = 0
While Eof(lFile) = 0
line$ = ReadString(lFile)
If CountString(line$, ":") = 0
GetSingleBlock(line$, lineNo)
Else
GetMultipleBlock(line$, lineNo, CountString(line$, ":"))
EndIf
lineNo + 1
Wend
EndProcedure
Procedure GetSingleBlock(line.s, lineNumber)
sWall = LoadSprite(#PB_Any, ProgramPath$+"data\wall.png")
sWay = LoadSprite(#PB_Any, ProgramPath$+"data\way.png")
Select StringField(line, 1, "(")
Case "wall"
anz = Val(RemoveString(StringField(line, 2, "("), ")"))
For i = 0 To anz - 1
DisplaySprite(sWall, i * 30, lineNumber * 30)
Next
EndSelect
EndProcedure
Procedure GetMultipleBlock(line.s, lineNumber, anzBlocks)
sWall = LoadSprite(#PB_Any, ProgramPath$+"data\wall.png")
sWay = LoadSprite(#PB_Any, ProgramPath$+"data\way.png")
akt_Block = 0
For i = 0 To anzBlocks
part.s = StringField(line, i + 1, ":")
Select StringField(part, 1, "(")
Case "wall"
anz = Val(RemoveString(StringField(line, 2, "("), ")"))
For j = akt_Block To anz + akt_Block
DisplaySprite(sWall, j * 30, lineNumber * 30)
Next
akt_Block + anz
Case "way"
anz = Val(RemoveString(StringField(line, 2, "("), ")"))
For jj = akt_Block To anz + akt_Block
DisplaySprite(sWay, j * 30, lineNumber * 30)
Next
akt_Block + anz
EndSelect
Next
EndProcedure
http://www.mediafire.com/?1vh71e3pe1a1x8v
TheCreepyProgramer


