Autor Beitrag
sibbe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 50

WIN XP Prof
D7 Prof
BeitragVerfasst: So 09.01.05 12:31 
moin moin.

Ich habe in letzter Zeit nen kleines Jump'n'run mit Delphi programmiert und hab nu folgendes Problem:

Wenn vor dem Start des Programms iTunes gestartet ist (ob musik läuft oder nicht is schnurz) dann läuft das spiel ruckelfrei mit butterweichen 40 fps (-->Win GDI. DirectX oder OGL wollte und will ich nicht benutzen, auch wenns einfacher ist). Ist das aber nicht der fall, stottert das mit 9-10 fps rum, auch wenn der speicher sonst frei ist!

Das Problem tritt nicht auf, wenn ich vor dem Laden eines Levels in die ursprüngliche Auflösung spring (1280x1024) und nach dem Laden wieder in die des Spiels (400x300 (verkneift euch bitte etwaige kommentare :wink: )). Auf die Möglichkeit würde ich aber nur im Notfall zurückgreifen, da ich zwischen den Leveln ein paar Grafikeffekte eingebaut hab, die durch das andauernde Ändern der Auflösung aber für die Katz wären.

Ich hab keine Ahnung woran sowas liegen könnte, wär froh, wenn von euch da einer ideen hätte.

Damit ihr ne ungefähre ahnung habt, wie der spielablauf funktioniert, hier grob meine gameloop

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure Gameloop
 solange blabla nicht true ist machma 

  Anfangszeit = GetTickCount
  
  Überprüfe ob die und die und die Taste gedrückt wurde und reagiere entsprechend;
  
  Zeichne alles;

  wenn anfangszeit - Gettickcount weniger als 30 
    dann warte nochn bisschen;                     //Problem tritt auch auf, wenn man das weglässt
  
  Fps-Anzeige;
 
  Application.Processmessages;

 ende;
end;

(wie gesagt nur grob :D )

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt.

//Edit @Christian S.: und ich dachte die Codetags wären für sonen pseudo-code da ... :P

_________________
Ideale sind wie Sterne: Man kann sie zwar nicht erreichen, aber man kann sich sehr wohl an ihnen orientieren.
(Blaise Pascal)


Zuletzt bearbeitet von sibbe am So 09.01.05 13:26, insgesamt 1-mal bearbeitet
Elite
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 09.01.05 13:08 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
  wenn anfangszeit - Gettickcount weniger als 30 
    dann warte nochn bisschen;                     //Problem tritt auch auf, wenn man das weglässt
 ende;
end;

An dieser Stelle bremst du ja dein Spiel absichtlich ab. Du sorgst dafür, dass jeder Loop mindestens 30ms dauert, was wiederum bewirkt, dass du maximal 33 FPS bekommst. Ich glaube nicht, dass das jetzt direktmit deinem Problem zu tun hat, aber normalerweise nutzt man für so etwas
Suche in: Delphi-Forum, Delphi-Library QUERYPERFORMANCECOUNTER.
sibbe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 50

WIN XP Prof
D7 Prof
BeitragVerfasst: So 09.01.05 13:22 
Ok, danke für den Tipp, werde mir das mal genauer ansehen.

Fakt bleibt aber, dass diese Ausbremsung nichts mit meinem Problem zu tun hat, denn auch ohne sie ruckelt das Programm :cry:

_________________
Ideale sind wie Sterne: Man kann sie zwar nicht erreichen, aber man kann sich sehr wohl an ihnen orientieren.
(Blaise Pascal)
sibbe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 50

WIN XP Prof
D7 Prof
BeitragVerfasst: So 09.01.05 19:36 
So hab QueryPerfomance ausprobiert, aber mit dem gleichen Ergebnis (und mit iTunes auch mit der gleichen FPS-zahl)

Kann es denn irgendeine DLL von itunes geben, die mein programm mit beeinflusst oder woran kann sowas liegen?

Oder hat der vielleicht mit der "ungewöhnlichen" Auflösung von 400x300 Probleme?

Manchmal kann ich mir nicht mehr vorstellen, dass hinter sowas logik stecken soll :cry:

_________________
Ideale sind wie Sterne: Man kann sie zwar nicht erreichen, aber man kann sich sehr wohl an ihnen orientieren.
(Blaise Pascal)
Melcho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 145

XP

BeitragVerfasst: Do 13.01.05 10:53 
Geil ein selbst geschriebens Jump and Run hastBock das ma rein zu hauen wills ma ausprobieren . :P

_________________
PCP saved my life
sibbe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 50

WIN XP Prof
D7 Prof
BeitragVerfasst: Fr 14.01.05 02:14 
kuckstu hier :)

_________________
Ideale sind wie Sterne: Man kann sie zwar nicht erreichen, aber man kann sich sehr wohl an ihnen orientieren.
(Blaise Pascal)
Melcho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 145

XP

BeitragVerfasst: Fr 14.01.05 08:46 
Jo das Game is an sich schon geil gemacht aber mir fehlt da irgendwie noch etwas ACTION :eyecrazy: so paar kleine Schildkröten oder sowas und was noch cool wäre wenn man noch ITems einsammeln kann z.B Feuer spucken oder auch fliegen aber das wird bestimmt ganz schön hart.

Aber Respekt an DIch ! :flehan:
Falls du das noch irgendwie in Angriff nehmen willst dann meld dich wenns fertig ist.

_________________
PCP saved my life
luis
Hält's aus hier
Beiträge: 4

Win [all], Linux
Delphi, VS, VIM
BeitragVerfasst: So 16.01.05 13:56 
Hm. Eventuell kannst ja mal nachschauen welche Bibliotheken im Speicher mit und ohne iTunes liegem. Das lässt sich am beseten vom PrcView. Dann kannst gleich überprüfen, ob OpenGL oder DirectX DLLs geladen werden die du noch nicht berücksichtig hast :wink: