Einzelnen Beitrag anzeigen

Griesi

Registriert seit: 19. Mär 2015
2 Beiträge
 
#1

[Gelöst] Exception-Klasse >>External:SIGSEGV<<

  Alt 19. Mär 2015, 16:34
Ich schreibe zurzeit ein kleines Spiel und möchte bestimmten Feldern in einem Array einen Wert zuweisen.
Beim Kompilieren weist Lazarus keine Fehler auf, aber sobald er das Projekt startet bekomme ich den Error:

"Projekt project1 hat Exception Klasse >>External:SIGSEGV<< ausgelöst.
In Datei 'unit2.pas' in Zeile 195:
Home.Tiles[9.i]:=1;"

Ich habe schon nach Problemlösungen gesucht, aber bisher konnte mir keine wirklich weiterhelfen.
Ich hänge mal den zugehörigen Code an.

Delphi-Quellcode:
 THero = class
  private

  public
    Map:integer;
    NewPosX:integer;
    NewPosY:integer;
    ActPosX:integer;
    ActPosY:integer;
    Equip:string;
    procedure MoveUp;
    procedure MoveDown;
    procedure MoveLeft;
    procedure MoveRight;
  // constructor Create;
  end;
   TMap = class
  private

  public
    Tiles: Array[0..32,0..18] of integer;
    SpawnX:integer;
    SpawnY:integer;
    constructor Create;
   end;

  { TForm2 }

  TForm2 = class(TForm)
    Image1: TImage;
    Image2: TImage;
    HeroDown: TImage;
    HeroUp: TImage;
    HeroLeft: TImage;
    HeroRight: TImage;
    procedure FormCreate(Sender: TObject);
    procedure FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure HomeInitialisierung;

  private
    { private declarations }
  public
    { public declarations }
  end;

var
    Form2: TForm2;
     Hero: THero;
   Home,Center,East,Hosp1,Hosp2,HospRoof:Tmap;
implementation

{$R *.lfm}

{ TForm2 }

constructor TMap.Create;
var i,j:integer;
begin
  for i:=0 to 32 do
      begin
        for j:= 0 to 18 do
          begin
            Tiles[i,j]:=0;
          end;
      end;
self.SpawnX:=0;
self.SpawnY:=0;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
  Form2.Image1.visible:=true;
  Home.Create;
  Center.Create;
  East.Create;
  Hosp1.Create;
  Hosp2.Create;
  HospRoof.Create;
  Form2.HomeInitialisierung;

procedure TForm2.HomeInitialisierung;
var
   i,j:integer;
begin
  for i:=6 to 12 do
    begin
        Home.Tiles[9,i]:=1;
    end;
  //Home.Tiles[10,6]:=1;
  //Home.Tiles[10,9]:=1;
  //Home.Tiles[10,10]:=1;
  //Home.Tiles[10,13]:=1;

end;
Wäre toll, wenn mir jemand helfen könnte.

LG Griesi

Geändert von Griesi (19. Mär 2015 um 16:41 Uhr)
  Mit Zitat antworten Zitat