![]() |
DX Rennspiel
Ich hab schon ein Thema eröffnet(
![]() 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: |
Re: DX Rennspiel
hi
Schau mal bei ![]() or ![]() or ![]() vorbei da gibts ein haufen tutorials zu diesen thema :) ich hoffe ich konnte helfen cya HaZe |
Re: DX Rennspiel
Wenn ich folgenden Code benutze, dann wird nie etwas angezeigt! Warum?
Delphi-Quellcode:
Selbst wenn ich den Create-Befehl in einen Timer setzte läufts nicht *seufz*
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. :roll: :hi: |
Re: DX Rennspiel
:(
Habs oben abgeändert! Ich wart schon den ganzen Tag auf'ne Antwort! :freak: |
Re: DX Rennspiel
Zitat:
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: |
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. |
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 |
Re: DX Rennspiel
Der Quelltext steht oben :wink:
Die Grafikauflösung hab ich schon höhergestellt |
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. |
Re: DX Rennspiel
Also, ich will ja niemanden kritisieren, aber:
Zitat:
Zitat:
Zitat:
Zitat:
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 09:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz