OSDN Git Service

SDL_atomic_t サンプルコードを修正 https://wiki.libsdl.org/SDL_atomic_t?action=diff&rev1=3&rev2=4
[sdl2referencejp/sdl2referencejp.git] / SDL_AddTimer.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\r
2 <html lang="ja-JP">\r
3 <head>\r
4 <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">\r
5 <meta http-equiv="Content-Style-Type" content="text/css">\r
6 <meta name="keywords" content="Simple Directmedia Layer SDL2.0">\r
7 <link rel="top" href="index.html" title="\83z\81[\83\80">\r
8 <link rel="parent" href="CategoryAudio.html" title="1\82Â\8fã">\r
9 <title>SDL_AddTimer</title>\r
10 </head>\r
11 <body>\r
12 <a href="index.html">\96Ú\8e\9f</a> - <a href="ApiByCategory.html">API(\8b@\94\\95Ê)</a> - <a href="CategoryTimer.html">\83^\83C\83}</a> - SDL_AddTimer\r
13 <hr>\r
14 <h1>SDL_AddTimer</h1>\r
15 \8ew\92è\82Ì\83~\83\8a\95b\82ª\8co\89ß\82µ\82½\8cã\82É\95Ê\83X\83\8c\83b\83h\82Ì\83R\81[\83\8b\83o\83b\83N\8aÖ\90\94\82ð\8cÄ\82Ô\82æ\82¤\82É\90Ý\92è\82·\82é\r
16 <h2>\8d\\95¶</h2>\r
17 <code>SDL_TimerID SDL_AddTimer(Uint32 interval, SDL_TimerCallback callback, void* param)</code>\r
18 <h2>\88ø\90\94</h2>\r
19 <table border="1" summary="SDL_AddTimer">\r
20 <tr><td>interval</td><td>callback\82ð\8cÄ\82Ô\82Ü\82Å\82Ì\8e\9e\8aÔ(\83~\83\8a\95b)</td></tr>\r
21 <tr><td>callback</td><td>\8ew\92è\82Ìinterval\82ª\8co\89ß\82µ\82½\8cã\82É\8cÄ\82Î\82ê\82é\8aÖ\90\94</td></tr>\r
22 <tr><td>param</td><td>callback\82É\93n\82³\82ê\82é\83|\83C\83\93\83^</td></tr>\r
23 </table>\r
24 <h2>\96ß\82è\92l</h2>\r
25 \90¬\8c÷\82Ì\82Æ\82«\83^\83C\83}ID, \8e¸\94s\82Ì\82Æ\82«0\82ð\96ß\82·.\r
26 <a href="SDL_GetError.html">SDL_GetError()</a>\82ð\8cÄ\82ñ\82Å\8fÚ\8d×\82ð\92m\82é\82±\82Æ\82ª\82Å\82«\82é.\r
27 <h2>\83T\83\93\83v\83\8b\83R\81[\83h</h2>\r
28 <p>\r
29 <code>\r
30 <pre>\r
31 /* \83^\83C\83}\82ð\8aJ\8en\82·\82é; \89º\82Ì\83R\81[\83\8b\83o\83b\83N\82Í\8e\9e\8aÔ\82ª\8co\89ß\82·\82é\82Æ\8eÀ\8ds\82³\82ê\82é */\r
32 \r
33 Uint32 delay = (33 / 10) * 10;  /* 10\83~\83\8a\95b\92P\88Ê\82Å\90Ø\82è\8eÌ\82Ä\82é */\r
34 SDL_TimerID my_timer_id = SDL_AddTimer(delay, my_callbackfunc, my_callback_param);\r
35 \r
36 ...\r
37 \r
38 Uint32 my_callbackfunc(Uint32 interval, void *param)\r
39 {\r
40     SDL_Event event;\r
41     SDL_UserEvent userevent;\r
42 \r
43     /* \82±\82Ì\97á\82Å\82Í, \83R\81[\83\8b\83o\83b\83N\82ÅSDL_USEREVENT\83C\83x\83\93\83g\82ð\83L\83\85\81[\82É\93ü\82ê\82Ä\82¢\82é.\r
44     \82±\82Ì\83R\81[\83\8b\83o\83b\83N\8aÖ\90\94\82Í\88ê\92è\82Ì\8eü\8aú\82Å\8dÄ\82Ñ\8cÄ\82Î\82ê\82é */\r
45 \r
46     userevent.type = SDL_USEREVENT;\r
47     userevent.code = 0;\r
48     userevent.data1 = NULL;\r
49     userevent.data2 = NULL;\r
50 \r
51     event.type = SDL_USEREVENT;\r
52     event.user = userevent;\r
53 \r
54     SDL_PushEvent(&amp;event);\r
55     return(interval);\r
56 }\r
57 </pre>\r
58 </code>\r
59 </p>\r
60 <p>\r
61 userevent.data1\82É\8eÀ\8ds\82·\82é\8aÖ\90\94\82Ì\83A\83h\83\8c\83X, userevent.data2\82É\82»\82Ì\88ø\90\94\82ð\97^\82¦, \83C\83x\83\93\83g\83\8b\81[\83v\82Å\82»\82ê\82ð\88µ\82¤\82Æ, SDL\82Ì\83}\83\8b\83`\83X\83\8c\83b\83h\82Ì\96â\91è\82ð\94ð\82¯\82ç\82ê\82é.\r
62 <br>\r
63 <code>\r
64 <pre>\r
65 /* \8fã\82Ì\83R\81[\83h\82Æ\93¯\82¶ */\r
66 Uint32 my_callbackfunc(Uint32 interval, void *param)\r
67 {\r
68     SDL_Event event;\r
69     SDL_UserEvent userevent;\r
70 \r
71     /* \82±\82Ì\97á\82Å\82Í, \83R\81[\83\8b\83o\83b\83N\82ÅSDL_USEREVENT\83C\83x\83\93\83g\82ð\83L\83\85\81[\82É\93ü\82ê\82Ä\82¢\82é.\r
72     \82±\82Ì\83R\81[\83\8b\83o\83b\83N\8aÖ\90\94\82Í\88ê\92è\82Ì\8eü\8aú\82Å\8dÄ\82Ñ\8cÄ\82Î\82ê\82é */\r
73 \r
74     userevent.type = SDL_USEREVENT;\r
75     userevent.code = 0;\r
76     userevent.data1 = &amp;my_function;\r
77     userevent.data2 = param;\r
78 \r
79     event.type = SDL_USEREVENT;\r
80     event.user = userevent;\r
81 \r
82     SDL_PushEvent(&amp;event);\r
83     return(interval);\r
84 }\r
85 \r
86 /* \83C\83x\83\93\83g\83\8b\81[\83v */\r
87 SDL_Event event;\r
88 while (SDL_PollEvent (&amp;event))\r
89 {\r
90     switch(event.type)\r
91     {\r
92         case SDL_USEREVENT: {\r
93             /* \83^\83C\83}\82Å\82±\82Ì\8aÖ\90\94\82ð\8cÄ\82Ñ\82½\82¢\82Æ\82±\82ë\82¾\82ª, \83}\83\8b\83`\83X\83\8c\83b\83h\82Ì\96â\91è\82Ì\82½\82ß\82Å\82«\82È\82¢ */\r
94             void (*p) (void*) = event.user.data1;\r
95             p(event.user.data2);\r
96             break;\r
97         }\r
98         /* ... */\r
99     }\r
100 }\r
101 </pre>\r
102 </code>\r
103 </p>\r
104 <h2>\8fÚ\8d×</h2>\r
105 <p>\r
106 \82±\82Ì\8aÖ\90\94\82ð\8eg\82¤\8fê\8d\87, <a href="SDL_Init.html">SDL_Init()</a>\82ÉSDL_INIT_TIMER\82ð\93n\82µ\82Ä\82¢\82é\95K\97v\82ª\82 \82é.\r
107 </p>\r
108 <p>\r
109 \83R\81[\83\8b\83o\83b\83N\8aÖ\90\94\82Í, \91æ1\88ø\90\94\82É<a href="SDL_AddTimer.html">SDL_AddTimer()</a>\82Å\90Ý\92è\82µ\82½interval\82ð, \91æ2\88ø\90\94\82Éparam\82ð\8eæ\82é. \82»\82µ\82Ä, \96ß\82è\92l(Uint32)\82Í\8e\9f\82É\8cÄ\82Ô\82Ü\82Å\82Ì\8e\9e\8aÔ(\83~\83\8a\95b)\82Å\82 \82é.\r
110 \83R\81[\83\8b\83o\83b\83N\8aÖ\90\94\82ª0\82ð\96ß\82·\82Æ, \83^\83C\83}\82Í\83L\83\83\83\93\83Z\83\8b\82³\82ê\82é.\r
111 </p>\r
112 <p>\r
113 \83R\81[\83\8b\83o\83b\83N\8aÖ\90\94\82Í\95Ê\83X\83\8c\83b\83h\82Å\8eÀ\8ds\82³\82ê\82é. \83\81\83C\83\93\83X\83\8c\83b\83h\82Å\83^\83C\83}\83R\81[\83\8b\83o\83b\83N\82ð\8f\88\97\9d\82·\82é\95û\96@\82ª\95K\97v\82È\82ç\82Î\83T\83\93\83v\83\8b\83R\81[\83h\82ð\8eQ\8fÆ\82·\82é\82±\82Æ.\r
114 </p>\r
115 <h2>\8aÖ\98A\8d\80\96Ú(\8aÖ\90\94)</h2>\r
116 <a href="SDL_RemoveTimer.html">SDL_RemoveTimer</a><br>\r
117 <h2>SDL Wiki\82Ö\82Ì\83\8a\83\93\83N</h2>\r
118 <a href="https://wiki.libsdl.org/SDL_AddTimer">SDL_AddTimer - SDL Wiki</a>\r
119 <hr>\r
120 </body>\r
121 </html>\r