Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi DX Rennspiel (https://www.delphipraxis.net/34565-dx-rennspiel.html)

Nils_13 24. Nov 2004 19:06


DX Rennspiel
 
Ich hab schon ein Thema eröffnet(DP Thread), aber neue Frage neuer Thread:
Ich will ein Rennspiel mit DX proggen.

Nur die ganzen Sachen die ich selbst gemacht (also alles) läuft nicht.

Folgende Frage, wie kann ich einen Sprite erstellen und ihn bewegen lassen?

:hi:

HaZe 25. Nov 2004 10:18

Re: DX Rennspiel
 
hi

Schau mal bei
http://www.delphigl.com/
or
http://www.neobrothers.de/oldpage1/index.html
or
http://delphigl.de/
vorbei da gibts ein haufen tutorials zu diesen thema :)

ich hoffe ich konnte helfen

cya

HaZe

Nils_13 6. Dez 2004 15:50

Re: DX Rennspiel
 
Wenn ich folgenden Code benutze, dann wird nie etwas angezeigt! Warum?

Delphi-Quellcode:
constructor TAuto.Create(AParent: TSprite);
begin
  inherited Create(AParent);

  Image := Form1.ImageList.Items.Find('Dodge Viper');
  Width := Image.Width;
  Height := Image.Height;
end;

destructor TAuto.Destroy;
begin
  inherited Destroy;
end;

procedure TAuto.DoMove(MoveCount: Integer);
begin
  inherited DoMove(MoveCount);

  if isUp in Form1.Input.States then
  begin
    X := X + cos(degtorad(Angle)) * MoveCount;
    Y := Y - sin(degtorad(Angle)) * MoveCount;
  end;

  if isDown in Form1.Input.States then
  begin
    X := X - cos(degtorad(Angle)) * MoveCount;
    Y := Y - sin(degtorad(Angle)) * MoveCount;
  end;

  if isLeft in Form1.Input.States then
    Angle := Angle - 1;

  if isRight in Form1.Input.States then
    Angle := Angle + 1;
end;

procedure TForm1.TimerTimer(Sender: TObject; LagCount: Integer);
begin
  Input.Update;
  SpriteEngine.Move(5);
  Draw.Surface.Fill(clBlack);
  SpriteEngine.Draw;
  Draw.Flip;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  with TAuto.Create(SpriteEngine.Engine) do
  begin
    X := 50;
    Y := 50;
  end;
end;

end.
Selbst wenn ich den Create-Befehl in einen Timer setzte läufts nicht *seufz*

:roll:

:hi:

Nils_13 6. Dez 2004 17:25

Re: DX Rennspiel
 
:(

Habs oben abgeändert!
Ich wart schon den ganzen Tag auf'ne Antwort!

:freak:

gordon freeman 6. Dez 2004 18:29

Re: DX Rennspiel
 
Zitat:

Zitat von Nils_13
:(

Habs oben abgeändert!
Ich wart schon den ganzen Tag auf'ne Antwort!

:freak:

IMHO ist das längst kein Tag gewesen, oder ist von 16:50 bis 18:25 jetzt schon ein Tag vergangen :gruebel:

Etwas mehr detaillreichtum wäre vieleicht angebracht. In deiner Create-Prozedure verwendest du X und Y, aber wo werden die denn verwendet. So wie ich das sehe weist du nur Werte zu, aber verwendest die Variablen nie (jedenfalls nicht im gezeigten Code)
Vieleicht hängst du den entsprechenden Code-Schnipsel noch an, so dass wir es im Zusammenhang testen können. Es wird schon keiner was klauen :mrgreen:

Nils_13 6. Dez 2004 18:47

Re: DX Rennspiel
 
@Spider: Sorry wenn du den Code liest, aber der Code ist wenigsten der einzige den ich finden konnte! Was den Code betrifft: :thumb:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, DXClass, DXSprite, DXInput, DXDraws, Math;

type
  TForm1 = class(TForm)
    Draw: TDXDraw;
    ImageList: TDXImageList;
    Input: TDXInput;
    SpriteEngine: TDXSpriteEngine;
    Timer: TDXTimer;
    procedure TimerTimer(Sender: TObject; LagCount: Integer);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

  TAuto = class(TImageSpriteEx)
  public
    constructor Create(AParent: TSprite); override;
    destructor Destroy; override;

    procedure DoMove(MoveCount: Integer); override;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TAuto }

constructor TAuto.Create(AParent: TSprite);
begin
  inherited Create(AParent);

  Image := Form1.ImageList.Items.Find('Dodge Viper');
  Width := Image.Width;
  Height := Image.Height;
end;

destructor TAuto.Destroy;
begin
  inherited Destroy;
end;

procedure TAuto.DoMove(MoveCount: Integer);
begin
  inherited DoMove(MoveCount);

  if isUp in Form1.Input.States then
  begin
    X := X + cos(degtorad(Angle)) * MoveCount;
    Y := Y - sin(degtorad(Angle)) * MoveCount;
  end;

  if isDown in Form1.Input.States then
  begin
    X := X - cos(degtorad(Angle)) * MoveCount;
    Y := Y - sin(degtorad(Angle)) * MoveCount;
  end;

  if isLeft in Form1.Input.States then
    Angle := Angle - 1;

  if isRight in Form1.Input.States then
    Angle := Angle + 1;
end;

procedure TForm1.TimerTimer(Sender: TObject; LagCount: Integer);
begin
  Input.Update;
  SpriteEngine.Move(5);
  Draw.Surface.Fill(clBlack);
  SpriteEngine.Draw;
  Draw.Flip;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  with TAuto.Create(SpriteEngine.Engine) do
  begin
    X := 50;
    Y := 50;
  end;
end;

end.

Maximus 6. Dez 2004 18:54

Re: DX Rennspiel
 
Was ist der genau Fehler?
Error beim compilieren?
Irgendeine Fehlermeldung, während des Spiels?
Fehlermeldung bei Spiel start?
Kommt kein Fehler, wird aber trotzdem nicht angezeigt?

Es sind einfach mehr details nötig

//Edit eventuell hängst du einfach mal den Quelltext an ;)

MFG
Maximus

Nils_13 6. Dez 2004 19:05

Re: DX Rennspiel
 
Der Quelltext steht oben :wink:

Die Grafikauflösung hab ich schon höhergestellt

Die Muhkuh 6. Dez 2004 19:46

Re: DX Rennspiel
 
Hi,

nun, immerhin hast du noch gesagt das es mein Code ist. ;)

Zum Problem, das kann gar nicht funktionieren, da du vielleicht die Komponeten nicht auf der Form und das Bild nicht hast.

gordon freeman 7. Dez 2004 13:26

Re: DX Rennspiel
 
Also, ich will ja niemanden kritisieren, aber:

Zitat:

Zitat von Nils_13
Nur die ganzen Sachen die ich selbst gemacht (also alles) läuft nicht.

Und unten schreibst du:

Zitat:

Zitat von Nils_13
@Spider: Sorry wenn du den Code liest, aber der Code ist wenigsten der einzige den ich finden konnte!

Wenn du Probleme zu seinem Code hast kannste ihn auch erstmal per PN ansprechen und fragen!


Zitat:

Zitat von Maximus
eventuell hängst du einfach mal den Quelltext an

Dem kann ich nur zustimmen. Es ist total unnötig diesen Reisenhaufen Code zu posten. Im Anhang wäre er besser aufgehoben. Und aus deiner Antwort werd ich erst recht nich schlau:

Zitat:

Zitat von Nils_13
Der Quelltext steht oben

Die Grafikauflösung hab ich schon höhergestellt

Das der Code oben steht stand überhaupt nicht zur Diskussion! Es ging darum, dass man solchen großen Code nicht einfach in einem Beitrag posten sollte.
Und was hat das mit der Grafikauflösung zu tun? :gruebel:



Außerdem möchte ich jetzt noch eine gnaz persönliche Einschätzung hinzufügen:

[Achtung! Gordon äußert seine Meinung, alle die Angestoßen sein könnten bitte nicht lesen!]
IMHO ist es vieleicht ein bisschen übertrieben, wenn man 3 Threads zur gleichen Zeit offen hat, in denen man ein a) Betriebssystem, einen b) Egoshooter und ein c) DX Rennspiel proggen will. Die Threads a) und b) sind vernünftigerweise zu, aber in diesem Thread c) noch einen "geklauten" Code zu präsentieren und zu behaupten es wäre der eigene, finde ich etwas dreist. Is aber nur meine Meinung. :angel:
[/eigene Meinung]


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:35 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz