Tach Leute Ich versuche ein 2D Point&Klick Adventure zu machen und hab mal ne frage zum Inventory.
Im Moment hab ich ein TItem = class(TImageSprite) definiert und alles was man im Spiel aufnehmen kann ist ein TItem. Je nach Level(Location) werden die in einer TObjectList verwaltet. Mein Inventory ist auch eine TObjectListund das aufnehmen und ablegen sollte ungefähr so aussehen:
Delphi-Quellcode:
procedure TInventory.Take(Item: TItem);
begin
Add(MyItemList.Extract(Item));
Item.Visible := false;
end;
procedure TInventory.Drop(Name: string; Px,Py: Integer);
var i: Integer;
begin
for i := 0 to Count - 1 do
if (Items[i] as TItem).Name = Name then
begin
with (MyItemList.Items[MyItemList.Add(Extract(Items[i]))] as TItem) do
begin
x := Px;
y := Py;
visible := true;
end;
exit;
end;
end;
leider ist da noch irgendein fehler drin, denn wenn ich das level wechsel und mit der maus über den ursprünglichen platz des Items fahre, spinnt die Kollisionsabfrage. Irgendeine Idee warum? oder wie ich das mit dem Inventory anders lösen kann?
[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]