Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi DelphiX unerklärlicher Fehler (https://www.delphipraxis.net/36799-delphix-unerklaerlicher-fehler.html)

Nils_13 26. Dez 2004 10:02


DelphiX unerklärlicher Fehler
 
Hi,

immer wenn ich etwas mit DelphiX machen möchte zeigt mir Delphi z.B. ein Bild nicht an.
Obwohl ich
Delphi-Quellcode:
DXDraw.Flip;
verwende.

Nehmt euch als Beispiel den Rennspielcode von Spider (wie schon erwähnt, bei jedem Prog von mir tritt dieser Fehler auf).

Könnt ihr mir da weiterhelfen?

Daniel 26. Dez 2004 10:05

Re: DelphiX unerklärlicher Fehler
 
Scheinbar hast Du einen Befehl ö.ä. vergessen.

Schaue mal hier: http://www.neobrothers.de/oldpage1/t...ls/ddtut1.html
Da gibt's ein DelphiX-Tutorial, welches ein simples Bild anzeigt. Vielleicht hilft Dir das ja weiter.

Die Muhkuh 26. Dez 2004 10:09

Re: DelphiX unerklärlicher Fehler
 
Hi Nils,


hast du überhaupt ein Bild in der ImageList? Hast du der ImageList und der SpriteEngine das DXDraw zugewiesen?
Rufst du vorher:

Delphi-Quellcode:
DXSpriteEngine1.Move(1);
DXDraw1.Surface.Fill(clBlack);
DXSpriteEngine.Draw;
DXDraw1.Flip;
auf?

Nils_13 26. Dez 2004 10:26

Re: DelphiX unerklärlicher Fehler
 
Ja, es läuft trotzdem nicht.

In einem Constructor steht
Delphi-Quellcode:
constructor TPlayerSprite.Create(AParent: TSprite);
begin
  inherited Create(AParent);
  Image := MainForm.ImageList.Items.Find('Ship');
  Width := Image.Width;
  Height := Image.Height;
end;
AutoInitialize steht auf False
Delphi-Quellcode:
procedure TMainForm.DrawInitialize(Sender: TObject);
begin
DXTimer.Enabled := True;
end;
Timer
Delphi-Quellcode:
procedure TMainForm.DXTimerTimer(Sender: TObject; LagCount: Integer);
begin
  ImageList.Items[0].draw(draw.surface, 0, 0, 0);
  Input.Update;
  SpriteEngine.Move(5);
  Draw.Surface.Fill(clBlack);
  SpriteEngine.Draw;
  Draw.Flip;
end;
DoMove
Delphi-Quellcode:
procedure TPlayerSprite.DoMove(MoveCount: Integer);
begin
  inherited DoMove(MoveCount);

  if fm=0 then
  begin
    if isUp in MainForm.Input.States then
      Y := Y - (250/1000)*MoveCount;

    if isDown in MainForm.Input.States then
      Y := Y + (250/1000)*MoveCount;

    if isLeft in MainForm.Input.States then
      X := X - (250/1000)*MoveCount;

    if isRight in MainForm.Input.States then
      X := X + (250/1000)*MoveCount;
end;
end;
Leider gibt es keine wirklich Hilfreichen Tuts für DelphiX, immer wenn es 'spannend' wird hört es auf.

Die Muhkuh 26. Dez 2004 10:30

Re: DelphiX unerklärlicher Fehler
 
Wie wäre es wenn du das Sprite erstellst und nicht auf das Draw malst? :stupid:

Machs mal so:

Delphi-Quellcode:
procedure {Form-Create-Event}
begin
  with TPlayerSprite.Create(DXSpriteEngine1.Engine) do
  begin
    X := 50;
    Y := 50;
  end;
end;
Delphi-Quellcode:
procedure TMainForm.DXTimerTimer(Sender: TObject; LagCount: Integer);
begin
 // ImageList.Items[0].draw(draw.surface, 0, 0, 0);
  Input.Update;
  SpriteEngine.Move(5);
  Draw.Surface.Fill(clBlack);
  SpriteEngine.Draw;
  Draw.Flip;
end;

Nils_13 26. Dez 2004 10:37

Re: DelphiX unerklärlicher Fehler
 
:wall: verdammt bin ich nicht drauf gekommen.

Ich werd hier bald beklopt, dieses verdammter m**t läuft immer noch nicht :evil:

@spider: wenn ich dein Projekt kopieren würde läufts nicht.

DP-Maintenance 26. Dez 2004 11:00

DP-Maintenance
 
Dieses Thema wurde von "Daniel" von "Sonstige Fragen zu Delphi" nach "Multimedia" verschoben.

Die Muhkuh 26. Dez 2004 11:03

Re: DelphiX unerklärlicher Fehler
 
Zitat:

Zitat von Nils_13
:wall: verdammt bin ich nicht drauf gekommen.

Ich werd hier bald beklopt, dieses verdammter m**t läuft immer noch nicht :evil:

@spider: wenn ich dein Projekt kopieren würde läufts nicht.

Hi Nils,

Gegenfrage: WAS läuft nicht? Fehlermeldung?


Btw: Häng mal das Projekt an.

Nils_13 26. Dez 2004 11:11

Re: DelphiX unerklärlicher Fehler
 
Liste der Anhänge anzeigen (Anzahl: 1)
Das Bild wird nicht angezeigt

Die Muhkuh 26. Dez 2004 11:24

Re: DelphiX unerklärlicher Fehler
 
Hi,

ich hab den Fehler.

du hast AutoInitalize auf false und rufst nirgendwo DXDraw1.Initalize auf. Entweder du machst AutoInitalize wieder auf true oder schreibst ins Form-Create noch DXDraw1.Initalize.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:40 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