Zitat von
Spurius:
1.Wo kommt der Code zum Einsatz?
Delphi-Quellcode:
procedure TMG.DoMove(MoveCount: Integer);
begin
inherited;
case Car.Ausrichtung of
auLeft: X := X - 3;
auRight: X := X + 3;
auUp: Y := Y - 3;
auDown: Y := Y + 3;
end;
if (X > Form1.DXDraw1.Width) or (X < 0) then
Dead;
if (Y > Form1.DXDraw1.Height) or (Y < 0) then
Dead;
end;
DoMove ist eine Methode die alle Klassen, die von TSprite abgeleitet sind, erben. Darum schau dir
mal die Implementierung der Klassen TSprite und TImageSprite und insbesondere die Methoden TSprite.DoMove, TImageSprite.DoMove udn TSprite.Move an.
Zitat von
Spurius:
2. Und der?
procedure TCar.Schiessen;
begin
Dec(FMunitionMG);
with TMG.Create(engine) do
begin
x := self.X;
y := self.Y;
end;
end;
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_SPACE then
begin
if Car.Munition > 0 then
Car.Schiessen; <==== HIER
end;
end;
Zitat von
Spurius:
3. Bei mir war das Problem doch, dass ich den schuss nur einmal erzeugen konnte, solabge der alte noch existiert. Wie hast du das konkret umgangen?
Hmm, das ist schwer zu sagen. Ich habe eigentlich DelphiX nur "richtig" eingesetzt, dann geht das auch.