Gamestudio Links
Zorro Links
Newest Posts
Trading Journey
by M_D. 04/26/24 20:22
Help with plotting multiple ZigZag
by M_D. 04/26/24 20:03
Data from CSV not parsed correctly
by jcl. 04/26/24 11:18
M1 Oversampling
by jcl. 04/26/24 11:12
Why Zorro supports up to 72 cores?
by jcl. 04/26/24 11:09
Eigenwerbung
by jcl. 04/26/24 11:08
MT5 bridge not working on MT5 v. 5 build 4160
by EternallyCurious. 04/25/24 20:49
Zorro FIX plugin - Experimental
by flink. 04/21/24 07:12
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
4 registered members (M_D, AndrewAMD, Quad, Ayumi), 806 guests, and 5 spiders.
Key: Admin, Global Mod, Mod
Newest Members
wandaluciaia, Mega_Rod, EternallyCurious, howardR, 11honza11
19049 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Perfektes Timing #445972
10/01/14 07:14
10/01/14 07:14
Joined: Oct 2007
Posts: 25
Y
Yamm Offline OP
Newbie
Yamm  Offline OP
Newbie
Y

Joined: Oct 2007
Posts: 25
Derzeit arbeite ich an einer kleinen Demo-Engine. Dabei ist es wichtig, dass Ereignisse in Echtzeit zu festgelegten Zeitpunkten gestartet und beendet werden, wie etwa ein bestimmtes Bild oder einen Text anzeigen.

Momentan versuche ich alles mit einer while zu steuern. Dabei zähle ich die Variable "time" hoch, damit es auf allen PCs gleich ist, mit time_step.

Code:
time += 4 * time_step;



Zumindest für die ersten Sekunden gilt die Formel:

Timer = Seconds * 32 + 32

Allerdings stimmt dies mit fortschreiten der Zeit nicht mehr. Mache ich grundsätzlich etwas falsch? Hat dazu jemand gute Tipps?

Re: Perfektes Timing [Re: Yamm] #445973
10/01/14 07:32
10/01/14 07:32
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Superku Offline
Senior Expert
Superku  Offline
Senior Expert

Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Warum schreibst du nicht einfach
time += time_step;
und multiplizierst das stattdessen mit 4? Die zugrundeliegende Zeiteinheit der Engine sind ja bekanntlich Ticks, und 16 Ticks sind eine Sekunde, sprich
time += time_step;
erreicht in einer Sekunde, von 0 ausgehend, den Wert 16. Demnach
Sekunden = time/16.0; // Minuten und ähnliches lassen sich natürlich nun leicht aus den Sekunden bestimmen

Da time_step aber gewissen Schwankungen (bzw. eben gerade nicht) und Glättung unterliegt, um unterschiedliche Frameraten auszugleichen, solltest du eher zu time_frame anstatt time_step greifen - aber nicht immer, sondern nur da, wo du wirklich Zeit zählen/ aufsummieren musst!


"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends
Re: Perfektes Timing [Re: Superku] #445974
10/01/14 07:47
10/01/14 07:47
Joined: Oct 2007
Posts: 25
Y
Yamm Offline OP
Newbie
Yamm  Offline OP
Newbie
Y

Joined: Oct 2007
Posts: 25
hm... irgendwie komme ich damit immer noch nicht klar. Wenn ich beispielsweise time += time_frame; mache, scheint der Wert immer unter 22 zu liegen, es wird nichts addiert. frown

Re: Perfektes Timing [Re: Yamm] #445976
10/01/14 07:59
10/01/14 07:59
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Superku Offline
Senior Expert
Superku  Offline
Senior Expert

Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Ein Beispiel:

Code:
///////////////////////////////
#include <acknex.h>
#include <default.c>
///////////////////////////////

var time = 0;
var seconds = 0;
var minutes = 0;

void main()
{
	fps_max = 60;
	while(1)
	{
		time += time_frame;
		seconds = time/16.0;
		minutes = floor(seconds/60.0);
		seconds %= 60;
		draw_text(str_printf(NULL,"Game running for %d minutes and %d seconds.",(int)minutes,(int)seconds),20,20,COLOR_RED);
		wait(1);
	}
}



"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends
Re: Perfektes Timing [Re: Superku] #445979
10/01/14 08:23
10/01/14 08:23
Joined: Oct 2007
Posts: 25
Y
Yamm Offline OP
Newbie
Yamm  Offline OP
Newbie
Y

Joined: Oct 2007
Posts: 25
Danke! Mein Problem war anscheinend, dass ich statt var time int time gemacht habe frown


Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1