Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Mein Spiel -> CPU Auslastung 100% (https://www.delphipraxis.net/53206-mein-spiel-cpu-auslastung-100-a.html)

Neutral General 12. Sep 2005 11:37


Mein Spiel -> CPU Auslastung 100%
 
Wenn ich mein Spiel starte und und mein Formular aktiv ist, steigt die CPU-Auslastung im Taskmanager sofort auf 100%. Ich benutze DelphiX. Woran kann das liegen ?

Luckie 12. Sep 2005 11:39

Re: Mein Spiel -> CPU Auslastung 100%
 
Zitat:

Zitat von Neutral General
Woran kann das liegen ?

An deinem Code.

mbamler 12. Sep 2005 11:44

Re: Mein Spiel -> CPU Auslastung 100%
 
Zitat:

Zitat von Neutral General
Wenn ich mein Spiel starte und und mein Formular aktiv ist, steigt die CPU-Auslastung im Taskmanager sofort auf 100%. Ich benutze DelphiX. Woran kann das liegen ?

Ich glaube, dass liegt entweder an DelphiX oder an DirectX
(will sagen: dein Code kann da nur bedingt was für)

Egal welches DirectX Programm ich mit DelphiX bisher geschrieben habe - immer ist die CPU auslastung auf 100%
(du bist also nicht alleine)

Gruß
Matthias

Neutral General 12. Sep 2005 11:45

Re: Mein Spiel -> CPU Auslastung 100%
 
*g* Luckie wie alle ihn kennen :mrgreen:

da es ja die Auslastung dauernd 100% ist kann es ja nur an Code liegen der dauernd ausgeführt wird.
Also :
Delphi-Quellcode:
procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);
begin
  DXInput1.Update;
  DXSpriteEngine1.Move(1);
  DXDraw1.Surface.Fill(0);
  DXSpriteEngine1.Draw;
  DXDraw1.Flip;
end;
oder

Delphi-Quellcode:
procedure TSpieler.DoMove(MoveCount : Integer);
var Strecke : Double;
    xWeg,yWeg, xDiff,yDiff, Schritte : Double;
begin
inherited DoMove(MoveCount);
if (IsLeft in Form1.DXInput1.States) and (Move = false) then begin
  aX := Station.Links.X + (Station.Width/2);
  ay := Station.Links.y + (Station.Height/2);
  Move := true;
end;
 if (IsRight in Form1.DXInput1.States) and (Move = false)then begin
  aX := Station.Rechts.X + (Station.Width/2);
  ay := Station.Rechts.y + (Station.Height/2);
  Move := true;
end;

if Move = true then begin
  xWeg := Ax -x;
  yWeg := Ay -y;
  Strecke := Sqrt(Sqr(xWeg)+Sqr(yWeg));
  Schritte := Round(Strecke / 2);
  if Schritte = 0 then Schritte := 20;
  xDiff := xWeg / Schritte;
  yDiff := yWeg / Schritte;
  x := x + xDiff;
  y := y + yDiff;

  if (x = Ax) and (Ay = y) then Move := false;
end;
  Collision;
end;
Ansonsten wir bei mir nichts dauernd ausgeführt...

@ mbamler : Mh ok.. dann kann ichs wohl nicht ändern...

3_of_8 12. Sep 2005 11:48

Re: Mein Spiel -> CPU Auslastung 100%
 
Wie hoch ist der Timer.Interval?

Tubos 12. Sep 2005 11:50

Re: Mein Spiel -> CPU Auslastung 100%
 
Zitat:

Wenn ich mein Spiel starte und und mein Formular aktiv ist, steigt die CPU-Auslastung im Taskmanager sofort auf 100%
Und wo ist da das Problem dabei?
Wenn ich ein Spiel spiele, will ich in der Regel sowieso nichts nebenbei machen. Und wenn ich aus dem Fullscreen-Modus rausgehe (oder das Spiel-Fenster minimiere, jenachdem) und irgendwas anderes mache, soll das Spiel eben unterbrochen werden.

Neutral General 12. Sep 2005 12:08

Re: Mein Spiel -> CPU Auslastung 100%
 
Zitat:

Zitat von 3_of_8
Wie hoch ist der Timer.Interval?

Der Timer Intervall ist 1 aber ist jetzt auch egal.. das bleibt jetzt so und Ende ^^

sniper_w 12. Sep 2005 12:37

Re: Mein Spiel -> CPU Auslastung 100%
 
Versuche es mit Sleep(10);.

Neutral General 12. Sep 2005 12:42

Re: Mein Spiel -> CPU Auslastung 100%
 
sleep beim Haupttimer in DelphiX o.O ? Programmiertes Ruckeln ?^^

Lol von wegen... das geht echt voll gut o.O thx ! Hätt ich echt nicht gedacht... :thumb:

sniper_w 12. Sep 2005 12:43

Re: Mein Spiel -> CPU Auslastung 100%
 
Hast du es VERSUCHT ? :roll:


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