Ich weiß nicht, wie dein Konstruktor von TEnemy aussieht, aber wenn du ihn nicht verändert hast, fehlt die Speicherreservierung für TMovement:
create_weak_fighter.movementlist[0] := TMovement.Create;
Das kannst du aber im Konstruktor von TEnemy erledigen, wenn du sowieso alle 5 TMovements brauchst, oder aber im setter von Movementlist:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42:
| TEnemy = class(TObject) x,z : real; movementlist : array[0..5] of TMovement; time, hp, move : integer; public constructor Create; end;
constructor TEnemy.Create; var i : Integer; begin inherited Create; for i := 0 to 5 do movementlist[i] := TMovement.Create; end;
TMovementList = array[0 .. 5] of TMovement;
TEnemy = class(TObject) x,z : real; time, hp, move : integer; private FMovementlist : TMovementList; procedure SetMovement(X: Integer; Value: TMovement); public property Movementlist[X : Integer] : TMovementList read FMovementlist write SetMovement; end;
procedure TEnemy.SetMovement(X: Integer; Value: TMovement); begin if not Assigned(FMovementlist[X]) then FMovementlist[X] := TMovement.Create;
FMovementlist[X].Assign(Value); end; |
Mit der zweiten Methode hab ich keinerlei Erfahrung, das hab ich jetzt alles aus den bereits in Delphi vorliegenden Klassen entnommen (Siehe z.B. TCanvas.Pixels und dessen Setter/Getter oder TPicture.SetGraphic). Die erste ist sicher einfacher zu implementieren.
Oder du nimmst halt einfach das, was ich zu allererst gesagt hab

[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.