You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
183 lines
2.4 KiB
183 lines
2.4 KiB
<HTML |
|
><HEAD |
|
><TITLE |
|
>Time Examples</TITLE |
|
><META |
|
NAME="GENERATOR" |
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ |
|
"><LINK |
|
REL="HOME" |
|
TITLE="SDL Library Documentation" |
|
HREF="index.html"><LINK |
|
REL="UP" |
|
TITLE="Examples" |
|
HREF="guideexamples.html"><LINK |
|
REL="PREVIOUS" |
|
TITLE="CDROM Examples" |
|
HREF="guidecdromexamples.html"><LINK |
|
REL="NEXT" |
|
TITLE="SDL Reference" |
|
HREF="reference.html"></HEAD |
|
><BODY |
|
CLASS="SECT1" |
|
BGCOLOR="#FFF8DC" |
|
TEXT="#000000" |
|
LINK="#0000ee" |
|
VLINK="#551a8b" |
|
ALINK="#ff0000" |
|
><DIV |
|
CLASS="NAVHEADER" |
|
><TABLE |
|
SUMMARY="Header navigation table" |
|
WIDTH="100%" |
|
BORDER="0" |
|
CELLPADDING="0" |
|
CELLSPACING="0" |
|
><TR |
|
><TH |
|
COLSPAN="3" |
|
ALIGN="center" |
|
>SDL Library Documentation</TH |
|
></TR |
|
><TR |
|
><TD |
|
WIDTH="10%" |
|
ALIGN="left" |
|
VALIGN="bottom" |
|
><A |
|
HREF="guidecdromexamples.html" |
|
ACCESSKEY="P" |
|
>Prev</A |
|
></TD |
|
><TD |
|
WIDTH="80%" |
|
ALIGN="center" |
|
VALIGN="bottom" |
|
>Chapter 4. Examples</TD |
|
><TD |
|
WIDTH="10%" |
|
ALIGN="right" |
|
VALIGN="bottom" |
|
><A |
|
HREF="reference.html" |
|
ACCESSKEY="N" |
|
>Next</A |
|
></TD |
|
></TR |
|
></TABLE |
|
><HR |
|
ALIGN="LEFT" |
|
WIDTH="100%"></DIV |
|
><DIV |
|
CLASS="SECT1" |
|
><H1 |
|
CLASS="SECT1" |
|
><A |
|
NAME="GUIDETIMEEXAMPLES" |
|
></A |
|
>Time Examples</H1 |
|
><P |
|
></P |
|
><DIV |
|
CLASS="SECT2" |
|
><H2 |
|
CLASS="SECT2" |
|
><A |
|
NAME="AEN412" |
|
></A |
|
>Time based game loop</H2 |
|
><P |
|
><PRE |
|
CLASS="PROGRAMLISTING" |
|
>#define TICK_INTERVAL 30 |
|
|
|
static Uint32 next_time; |
|
|
|
Uint32 time_left(void) |
|
{ |
|
Uint32 now; |
|
|
|
now = SDL_GetTicks(); |
|
if(next_time <= now) |
|
return 0; |
|
else |
|
return next_time - now; |
|
} |
|
|
|
|
|
/* main game loop */ |
|
|
|
next_time = SDL_GetTicks() + TICK_INTERVAL; |
|
while ( game_running ) { |
|
update_game_state(); |
|
SDL_Delay(time_left()); |
|
next_time += TICK_INTERVAL; |
|
} </PRE |
|
></P |
|
></DIV |
|
></DIV |
|
><DIV |
|
CLASS="NAVFOOTER" |
|
><HR |
|
ALIGN="LEFT" |
|
WIDTH="100%"><TABLE |
|
SUMMARY="Footer navigation table" |
|
WIDTH="100%" |
|
BORDER="0" |
|
CELLPADDING="0" |
|
CELLSPACING="0" |
|
><TR |
|
><TD |
|
WIDTH="33%" |
|
ALIGN="left" |
|
VALIGN="top" |
|
><A |
|
HREF="guidecdromexamples.html" |
|
ACCESSKEY="P" |
|
>Prev</A |
|
></TD |
|
><TD |
|
WIDTH="34%" |
|
ALIGN="center" |
|
VALIGN="top" |
|
><A |
|
HREF="index.html" |
|
ACCESSKEY="H" |
|
>Home</A |
|
></TD |
|
><TD |
|
WIDTH="33%" |
|
ALIGN="right" |
|
VALIGN="top" |
|
><A |
|
HREF="reference.html" |
|
ACCESSKEY="N" |
|
>Next</A |
|
></TD |
|
></TR |
|
><TR |
|
><TD |
|
WIDTH="33%" |
|
ALIGN="left" |
|
VALIGN="top" |
|
>CDROM Examples</TD |
|
><TD |
|
WIDTH="34%" |
|
ALIGN="center" |
|
VALIGN="top" |
|
><A |
|
HREF="guideexamples.html" |
|
ACCESSKEY="U" |
|
>Up</A |
|
></TD |
|
><TD |
|
WIDTH="33%" |
|
ALIGN="right" |
|
VALIGN="top" |
|
>SDL Reference</TD |
|
></TR |
|
></TABLE |
|
></DIV |
|
></BODY |
|
></HTML |
|
> |