PC Interpretiert zu schnell!
PC Interpretiert zu schnell!
Ich hab da son Problem. Ich hab nur n DirectX Patch installiert und schon fängt mein PC an die PB Progs falsch zu interpretieren. Es läuft jetzt alles viel zu schnell. Kann man irgentnen code machen damit der das an jedem Rechner gleich interpretiert?
- vonTurnundTaxis
- Beiträge: 2130
- Registriert: 06.10.2004 20:38
- Wohnort: Bayreuth
- Kontaktdaten:
Ich habe mal was von Forum-Threads bzw. Tutorials was gejört, die hießen ungefähr so: "Wie man erreicht, dass Spiele immer gleich schnell laufen".
Such doch mal danach, ansonsten rate ich dir, mit Delay() zu arbeiten oder mit ElapsedMilliseconds() sozusagen zu überprüfen, ob / wie viel Zeit verstrichen ist.
Statt dem PB-Befehl solltest du lieber QueryPerformanceCounter_() & Co. nehmen, das ist dasselbe wie ElapsedMilliseconds(), nur kann das noch genauer messen (weil dazu richtige Hardware benutzt wird, sofern vorhanden).
Such doch mal danach, ansonsten rate ich dir, mit Delay() zu arbeiten oder mit ElapsedMilliseconds() sozusagen zu überprüfen, ob / wie viel Zeit verstrichen ist.
Statt dem PB-Befehl solltest du lieber QueryPerformanceCounter_() & Co. nehmen, das ist dasselbe wie ElapsedMilliseconds(), nur kann das noch genauer messen (weil dazu richtige Hardware benutzt wird, sofern vorhanden).
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
- vonTurnundTaxis
- Beiträge: 2130
- Registriert: 06.10.2004 20:38
- Wohnort: Bayreuth
- Kontaktdaten:
..außerdem, wenn es dasselbe ist, warum sollte man es dann bevorzugen?
zum timing:[wobei sich die genauigkeit jedoch in grenzen hält, und auch vom OS abhängt]
beispiel:
und was and51 meinte: "Wie läuft mein Spiel auf allen PCs gleich schnell?"
ist ein tut auf remi meier's page
zum timing:
Code: Alles auswählen
wait=500
Repeat
;...
ms=ElapsedMilliseconds()
;...
If ms>timer
;DIESE ZEILEN WERDEN NUR
;ALLER 'wait' MILLISEKUNDEN
;AUSGEFÜRHT
timer=ms+wait
EndIf
;...
;...
Until quit
beispiel:
Code: Alles auswählen
CreateImage(0, 20,20)
hWin=OpenWindow(0, 200,150, 200,60, "")
CreateGadgetList(hWin)
ImageGadget(1, 20, 20, 200,100, ImageID(0) )
ImageGadget(2, 90, 20, 200,100, ImageID(0) )
ImageGadget(3, 160,20, 200,100, ImageID(0) )
wait1=80
wait2=1000
wait3=300
Repeat
ms=ElapsedMilliseconds()
If ms>timer1
HideGadget(1, show1)
show1!1
timer1=ms+wait1
EndIf
If ms>timer2
HideGadget(2, show2)
show2!1
timer2=ms+wait2
EndIf
If ms>timer3
HideGadget(3, show3)
show3!1
timer3=ms+wait3
EndIf
If WaitWindowEvent(10)=#PB_Event_CloseWindow
quit=1
EndIf
Until quit
und was and51 meinte: "Wie läuft mein Spiel auf allen PCs gleich schnell?"
ist ein tut auf remi meier's page
na und? Schon mal StandFurz' Beitrag genauer angesehen? Er installierte einen DirectX Patch. Also arbeitet er sowieso nur mit Windows.vonTurnundTaxis hat geschrieben:> Statt dem PB-Befehl solltest du lieber QueryPerformanceCounter_() & Co. nehmen, das ist dasselbe wie ElapsedMilliseconds()
Nein, das sollte man nicht, weil dadurch ein wichtiges Feature von PureBasic, die Plattformunabhängigkeit, verloren geht.
hast du nicht richtig gelesen#NULL hat geschrieben:..außerdem, wenn es dasselbe ist, warum sollte man es dann bevorzugen?

Glaub mit, QueryPerformancecounter_() ist wesentlich geneuer als GetTickCount_(). Ich habe beide Methoden schon mal in der Schule verwendet, um Zeiten zu messen. GetTickCount_() entspricht halt ElapsedMilliseconds, nur dass letzteres auch Nicht-Win-kompatibel ist.
@ #NULL: danke für den Link; ich wusste nur noch den Titel, nicht aber, wo das Ganze zu finden ist.
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
- FGK
- Beiträge: 249
- Registriert: 09.01.2005 14:02
- Computerausstattung: i5-4430 CPU / 8GB RAM
GeForce GT630
Windows 10 Home / 64-bit - Wohnort: Augsburg
[Offtopic]
@AND51
seinen Senf dazu geben muß, plötzlich so akribisch darauf hinweist man solle
gefällligst die Vorgänger-Postings doch genau durchlesen bevor man antwortet!
[/Offtopic]
@AND51
na und? Schon mal StandFurz' Beitrag genauer angesehen? Er installierte einen DirectX Patch.
Also arbeitet er sowieso nur mit Windows.
Ist schon witzig, wie einer der häufig ohne genaues durchlesen der Postshast du nicht richtig gelesen Die Antwort habe ich schon gegeben..
Laut Win32.hlp wird im Gegensatz zu ElapsedMilliseconds() bei QueryPerformanceCounter_() richtige,
echte hardware benutzt, um "hochauflösende", also exakte zeitmessungen zu ermöglichen.
seinen Senf dazu geben muß, plötzlich so akribisch darauf hinweist man solle
gefällligst die Vorgänger-Postings doch genau durchlesen bevor man antwortet!

[/Offtopic]
Heee, das war nicht böse gemeint! DasFGK hat geschrieben:Ist schon witzig, wie einer der häufig ohne genaues durchlesen der Posts
seinen Senf dazu geben muß, plötzlich so akribisch darauf hinweist man solle
gefällligst die Vorgänger-Postings doch genau durchlesen bevor man antwortet!![]()

Ich wollte dich lediglich darauf hinweisen, dass das Ziel-OS eh nur Windows sein wird.
Selbst wenn: Findest du es also nicht gut, dass ich in diesem Thread mal aufgepasst habe und dass mir dieser Punkt nicht antgangen ist? Soll ich künftig lieber nur wieder die ersten drei Sätze der Posts lesen?

PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
- vonTurnundTaxis
- Beiträge: 2130
- Registriert: 06.10.2004 20:38
- Wohnort: Bayreuth
- Kontaktdaten: