Einzelnen Beitrag anzeigen

triX

Registriert seit: 18. Apr 2004
2 Beiträge
 
#1

Spiellevel in eine Form laden

  Alt 26. Apr 2004, 18:47
HEy!

Problem: Ich habe ein Level m.H. eines LEveleditors erzeugt und will dieses jetzt zur Laufzeit ins Spiel laden! Klappt auch wenn ich es als eigenständiges Projekt behandele! Wenn ich nun jedoch mehrere Units miteinander verknüpfe (sprich erst menü dann weiter ins spiel) klappt dieselbe Routine plötzlich nicht mehr!! Nun wollte ich fragen ob sich das jemand erklären kann??

am besten mal in den Code schauen!!

Code:
procedure TForm_spiel.FormPaint(Sender: TObject);
var
  i, s,z : BYTE;
  element : TElemente;
  err, BildName : STRING;

  rechteck:TRect;

begin


  {for element :=Stein to item do}
  if (NeuLaden) then
  begin
    for i:= Ord(Low(TElemente)) to Ord(High(TElemente)) do //durchläuft TElemente von unten nach oben

    BEGIN
      element:= TElemente (i);
      gvbild[element]:=TBitmap.Create;

      BildName:=gcElementName [element] + '.' + gcbmpext;

      Try
        with gvbild[element] do begin

        LoadFromFile(BildName);

        //nur zum Testen

        Transparent := True;
        TransParentColor := gvbild[element].canvas.pixels[50,50];
        Form_spiel.Canvas.Draw(50,50, gvbild[element]);


        Form_spiel.Canvas.LineTo(100,100);

        end;

      Except
        err := 'Datei: ' + BildName + ' konnte nicht geladen werden!' ;

        Application.MessageBox ( pChar (err) , 'Fehler', MB_OK);

        // bei Misserfolg -> Speicher wieder freigeben
        gvbild[element].Free;

      END; //Try
    END;

    with Form_spiel do begin  //Vollbildmodus ohne Taskliste
      left:=0;
      top:=0;
      borderstyle:=bsnone;
      width:=screen.Width;
      height:=screen.Height;
    end;

    gvMapDateiName := 'Maps/guteMap'+'.'+gcmapext;
    AssignFile(gvMapDatei,gvMapDateiName);
    ReSet(gvMapDatei);
    Read(gvMapDatei,gvMap);
    CloseFile(gvMapDatei);

    NeuLaden := FALSE;
  end;

   FOR s := 0 TO 31 DO
    FOR z := 0 TO 23 DO BEGIN
      rechteck.Left:=s*32;
      rechteck.top:=z*32;
      Form_spiel.Canvas.Draw(rechteck.Left,rechteck.Top,gvbild[gvMap[s,z] *
    END;

 end;
*Der Fehler tritt in der letzten Zeile auf!!!

thx triX
  Mit Zitat antworten Zitat