webForumDet fria alternativet

Läsa en level fil

3 svar · 414 visningar · startad av Alpha II

Alpha IIMedlem sedan maj 20002 993 inlägg
#1

Hej!
jag håller på med ett enkelt spel som går ut på att man går runt i en liten "laborynt" och ska ta sig till mål. Banorna vill jag spara i speciella filer som ska vara upp byggda så här:

<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
Level 01
wall01 5, 7
wall01 5, 8
wall01 5, 9
wall01 5, 10
wall01 5, 11
wall01 5, 12
wall01 5, 13
wall01 5, 14

wall01 10, 1
wall01 10, 2
wall01 10, 3
wall01 10, 4
wall01 10, 5
wall01 10, 6
wall01 10, 7

wall01 15, 7
wall01 15, 8
wall01 15, 9
wall01 15, 10
wall01 15, 11
wall01 15, 12
wall01 15, 13
wall01 15, 14

klinga 6, 7 move 9, 7
klinga 11, 7 move 14, 7

extralife 15, 10

Syntaxen är alltså:
[typ av object] [x], [y]
för alla utom "klinga".

Hur ska jag göra för att läsa filerna och skapa tex en TKlinga ( som är sprite) på rätt position och till änga variablerna movex, movey?

Säg till om ni inte förstår! :)

------------------
I have not failed. I´ve just found 10.000 ways that won´t work. // Thomas Edison

Alpha IIMedlem sedan maj 20002 993 inlägg
#2

Men hjälp mig då... :l :)

------------------
I have not failed. I´ve just found 10.000 ways that won´t work. // Thomas Edison

Alpha IIMedlem sedan maj 20002 993 inlägg
#3

Nu har jag suttit och försökt få det att fungera. Det fungerar nästan....
PosY tilldelas inte rätt värde :(

<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
procedure TForm1.OpenLevel(level: integer);
var
LevelFile, S, obj, posX, posY, moveX, moveY : String;
F : TextFile;
I, tmp_pos : Integer;
begin
if level < 10 then LevelFile := 'level0'+inttostr(level)
else LevelFile := 'Level'+inttostr(level);

if not FileExists('levels\'+LevelFile+'.lev') then begin
showmessage('Banan hittades inte!');
exit;
end;

AssignFile(F, 'levels\'+LevelFile+'.lev');
Reset(F);
while not Eof(F) do begin
ReadLn(F, S);

  obj := '';
  PosY := '';
  PosX := '';
  tmp_pos := 0;

  if length(s) \> 1 then begin
    for I := 0 to length(S) do begin
      if (S \= ' ') and (obj = '') then
        obj := copy(S, 0, I-1)
      else if (S \= ',') and (PosX = '') then begin
        PosX := copy(S, length(obj)+2, I-(length(obj)+2));
        tmp_pos := I;
      end
      else if (PosY = '') then
        PosY := copy(S, tmp_pos+1, length(S));
    end;

    showmessage('obj: "'+obj+'"'+#10+'PosX: "'+PosX+'"'+#10+'PosY: "'+posY+'"');

  end;

end;

CloseFile(F);

end;

------------------
I have not failed. I´ve just found 10.000 ways that won´t work. // Thomas Edison

Alpha IIMedlem sedan maj 20002 993 inlägg
#4

Lyckades lösa det själv :)

------------------
I have not failed. I´ve just found 10.000 ways that won´t work. // Thomas Edison

129 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)