Hallo leuts,
ich bin grad dabei ein kleines 2d spiel mit hilfe von delphiX zu schreiben.
Nun zu meinen problem:
der player soll in der mitte stehen bleiben und die objekte sollen sich bewegen. bis dahin kein
problem aber wenn ich nun die kollisionskontrolle einbauen will habe ich das probem dass im falle
einer kollision nur das objekt mit dem ich kollidiere stehen bleibt (wegen vererbung)
dann bin ich auf die idee gekommen die bewegung sowie die kollisionskontrolle in meine player move
procedure reinzupacken und die bewegung über eine Tobjectlist mit ner schleife zu machen. die
gegenstände wollen sich nur blöder weise keinen mm bewegen.
Delphi-Quellcode:
var gegen: TObjectList
Procedure TPlayer.DoMove(MoveCount: Integer);
var i: Integer;
Begin
Inherited domove(movecount);
If isup in form1.dxinput1.states
Then
Begin
for i:=0 to gegen.Count-1 do
TGegenstand(gegen[i]).Y:=TGegenstand(gegen[i]).Y+1;
if collision>0 then //falls der player mit mehr als nix kollidiert ;)
for i:=0 to gegen.Count-1 do
TGegenstand(gegen[i]).Y:=TGegenstand(gegen[i]).Y-1;
end;
If isdown in form1.dxinput1.states
Then
Begin
for i:=0 to gegen.Count-1 do
TGegenstand(gegen[i]).Y:=TGegenstand(gegen[i]).Y-1;
if collision>0 then
for i:=0 to gegen.Count-1 do
TGegenstand(gegen[i]).Y:=TGegenstand(gegen[i]).Y+1;
end;
If isleft in form1.dxinput1.states
Then
Begin
for i:=0 to gegen.Count-1 do
TGegenstand(gegen[i]).X:=TGegenstand(gegen[i]).x+1;
if collision>0 then
for i:=0 to gegen.Count-1 do
TGegenstand(gegen[i]).X:=TGegenstand(gegen[i]).x-1;
end;
If isright in form1.dxinput1.states
Then
Begin
for i:=0 to gegen.Count-1 do
TGegenstand(gegen[i]).X:=TGegenstand(gegen[i]).x-1;
if collision>0 then
for i:=0 to gegen.Count-1 do
TGegenstand(gegen[i]).X:=TGegenstand(gegen[i]).x+1;
end;
end;
wär echt kewl wenn mir jemand helfen könnt. vielen dank im voraus.
greetz dustin