⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usingevents.html

📁 SDL学习教程。超好。 SDL学习教程。超好
💻 HTML
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="Content-Language" content="zh-cn">
<title>使用SDL:事件</title>
</head>

<body bgcolor="#FFF8DC" text="#000000">
<TABLE>
<TR><!--#include file="../menu.tmpl" -->
<TD>

<p align="center">
[<a href="usingvideo.html">前一页</a>]  
<a href="toc.html"><font color="#8B0000">目录</font> </a>
[<a href="usingsound.html">后一页</a>]
</p>

<h1><font color="#8B0000">使用SDL</font></h1>

<h2>事件</h2>

<table border="0" cellpadding="4">
    <tr>
        <td valign="top"><ul>
            <li><strong>等待事件</strong></li>
        </ul>
        <blockquote>
            <p>调用SDL_WaitEvent()等待事件。
		</p>
        </blockquote>
        </td>
        <td valign="top" width="300" bgcolor="#D3D3D3"><b>提示:</b><br>
        SDL支持国际键盘,解释键盘事件,并支持UNICODE(置于event.key.keysym.unicode)。由于Unicode支持需要额外的处理,当需要Unicode时必须先调用  
        SDL_EnableUNICODE()。</td>
    </tr>
</table>

<table border="0" cellpadding="50">
    <tr>
        <td valign="top"><font color="#000080"><strong>例程:</strong></font><pre>
{
    SDL_Event event;

    SDL_WaitEvent(&amp;event);

    <font color="#0000FF">switch</font> (event.type) {
        <font color="#0000FF">case</font> SDL_KEYDOWN:
            printf(&quot;<font color="#000000">键 %s 按下了!\n</font>&quot;,
                   SDL_GetKeyName(event.key.keysym.sym));
            break;
        <font color="#0000FF">case</font> SDL_QUIT:
            exit(0);
    }
}
</pre>
        </td>
    </tr>
</table>

<table border="0" cellpadding="4">
    <tr>
        <td valign="top"><ul>
            <li><strong>事件轮询</strong> </li>
        </ul>
        <blockquote>
            <p>事件轮询调用SDL_PollEvent()函数。 </p>
        </blockquote>
        </td>
        <td valign="top" width="300" bgcolor="#D3D3D3"><b>提示:</b><br>
          如果只要查看(peek)事件,而不需要从事件队列中移走,你可以用SDL_PEEKEVENT作为参数调用SDL_PeepEvents()。 </td>
    </tr>
</table>

<table border="0" cellpadding="50">
    <tr>
        <td valign="top"><font color="#000080"><strong>例程:</strong></font><pre>
{
    SDL_Event event;

    <font color="#0000FF">while</font> ( SDL_PollEvent(&amp;event) ) {
        <font color="#0000FF">switch</font> (event.type) {
            <font color="#0000FF">case</font> SDL_MOUSEMOTION:
                printf(&quot;<font color="#000000">鼠标移动了</font><font color="#000000">%d,%d 到 (%d,%d)\n</font>&quot;,
                       event.motion.xrel, event.motion.yrel,
                       event.motion.x, event.motion.y);
                break;
            <font color="#0000FF">case</font> SDL_MOUSEBUTTONDOWN:
                printf(&quot;<font color="#000000">鼠标</font><font color="#000000"> %d </font><font color="#000000">点击</font><font color="#000000">在 (%d,%d)\n</font>&quot;,
                       event.button.button, event.button.x, event.button.y);
                break;
            <font color="#0000FF">case</font> SDL_QUIT:
                exit(0);
        }
    }
}
</pre>
        </td>
    </tr>
</table>

<table border="0" cellpadding="4">
    <tr>
        <td valign="top"><ul>
            <li><strong>事件状态轮询</strong></li>
        </ul>
        <blockquote>
            <p>除了直接处理事件,每种类型的事件都有一个相应的函数可以用作检查事件的状态。如果你需要独占使用,应该调用  
            SDL_EventState() 忽略所有的事件,并且定期的调用SDL_PumpEvents()更新程序的事件状态。</p> 
        </blockquote>
        </td>
        <td valign="top" width="300" bgcolor="#D3D3D3"><b>提示:</b><br>
          SDL_ShowCursor()可以显示或者隐藏光标/鼠标。 </td>
    </tr>
</table>

<table border="0" cellpadding="50">
    <tr>
        <td valign="top"><font color="#000080"><strong>例程:</strong></font><pre>
{
    SDL_EventState(SDL_MOUSEMOTION, SDL_IGNORE);
}

<font color="#008000">void</font> CheckMouseHover(void)
{
    <font color="#008000">int</font> mouse_x, mouse_y;

    SDL_PumpEvents();

    SDL_GetMouseState(&amp;mouse_x, &amp;mouse_y);
    <font color="#0000FF">if</font> ( (mouse_x &lt; 32) &amp;&amp; (mouse_y &lt; 32) ) {
        printf(&quot;鼠标在左上角!<font color="#000000">\n</font>&quot;);
    }
}
</pre>
        </td>
    </tr>
</table>

<p align="center">
[<a href="usingvideo.html">前一页</a>] 
<a href="toc.html"><font color="#8B0000">目录</font> </a>
[<a href="usingsound.html">后一页</a>]
</p>

</TABLE>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -