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

📄 tutorial_07.htm

📁 如果你相信它就好好学学吧,同样这里也只是个入门
💻 HTM
📖 第 1 页 / 共 5 页
字号:
    <td width="100%"><img src="Tutorial_07_files/tc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_files/tr.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td background="Tutorial_07_files/l.gif"><img src="Tutorial_07_files/l.gif" height="28" width="28"></td>
      <td valign="top" width="100%">如果lp的值是false的话,意味着L键还没按下,或者已经松开了,接着lp将被设为TRUE。同时检查这两个条件的原因是为了防止L键被按住后,这段代码被反复执行,并导致窗体不停闪烁。<br>
        lp设为true之后,计算机就知道L键按过了,我们则据此可以切换光源的开/关:布尔变量light控制光源的开关。</td>
    <td background="Tutorial_07_files/r.gif"><img src="Tutorial_07_files/r.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_07_files/bl.gif" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/bc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_files/br.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>
<font color="#aaffaa" size="3"> 
<pre>					lp=TRUE;				<font color="#ffffaa">// lp 设为 TRUE</font>
					light=!light;				<font color="#ffffaa">// 切换光源的 TRUE/FALSE</font>
</pre>
</font> 
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_07_files/tl.jpg" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/tc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_files/tr.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td background="Tutorial_07_files/l.gif"><img src="Tutorial_07_files/l.gif" height="28" width="28"></td>
    <td valign="top" width="100%"><font face="arial" size="-1">Now we check to see what light
    ended up being. The first line translated to english means: If light equals false. So if
    you put it all together, the lines do the following: If light equals false, disable
    lighting. This turns all lighting off. The command 'else' translates to: if it wasn't
    false. So if light wasn't false, it must have been true, so we turn lighting on. </font></td>
    <td background="Tutorial_07_files/r.gif"><img src="Tutorial_07_files/r.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_07_files/bl.gif" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/bc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_files/br.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>
<font color="#aaffaa" size="3"> 
<pre>					if (!light)				<font color="#ffffaa">// 如果没有光源</font>
					{
						glDisable(GL_LIGHTING);		<font color="#ffffaa">// 禁用光源</font>
					}
					else					<font color="#ffffaa">// 否则</font>
					{
						glEnable(GL_LIGHTING);		<font color="#ffffaa">// 启用光源</font>
					}
				}
</pre>
</font> 
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_07_files/tl.jpg" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/tc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_files/tr.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td background="Tutorial_07_files/l.gif"><img src="Tutorial_07_files/l.gif" height="28" width="28"></td>
      <td valign="top" width="100%">下面的代码查看是否松开了"L"键。如果松开,变量lp将设为false。这意味着"L"键没有按下。如果不作此检查,光源第一次打开之后,就无法再关掉了。计算机会以为"L"键一直按着呢。</td>
    <td background="Tutorial_07_files/r.gif"><img src="Tutorial_07_files/r.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_07_files/bl.gif" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/bc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_files/br.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>
<font color="#aaffaa" size="3"> 
<pre>				if (!keys['L'])					<font color="#ffffaa">// L键松开了么?</font>
				{
					lp=FALSE;				<font color="#ffffaa">// 若是,则将lp设为FALSE</font>
				}
</pre>
</font> 
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_07_files/tl.jpg" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/tc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_files/tr.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td background="Tutorial_07_files/l.gif"><img src="Tutorial_07_files/l.gif" height="28" width="28"></td>
      <td valign="top" width="100%">然
后对"F"键作相似的检查。如果有按下"F"键并且"F"键没有处于按着的状态或者它就从没有按下过,将变量fp设为true。这意味着这个键正被按着
呢。接着将filter变量加一。如果filter变量大于2(因为这里我们的使用的数组是texture[3],大于2的纹理不存在),我们重置
filter变量为0。</td>
    <td background="Tutorial_07_files/r.gif"><img src="Tutorial_07_files/r.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_07_files/bl.gif" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/bc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_files/br.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>
<font color="#aaffaa" size="3"> 
<pre>				if (keys['F'] &amp;&amp; !fp)				<font color="#ffffaa">// F键按下了么?</font>
				{
					fp=TRUE;				<font color="#ffffaa">// fp 设为 TRUE</font>
					filter+=1;				<font color="#ffffaa">// filter的值加一</font>
					if (filter&gt;2)				<font color="#ffffaa">// 大于2了么?</font>
					{
						filter=0;			<font color="#ffffaa">// 若是重置为0</font>
					}
				}
				if (!keys['F'])					<font color="#ffffaa">// F键放开了么?</font>
				{
					fp=FALSE;				<font color="#ffffaa">// 若是fp设为FALSE</font>
				}
</pre>
</font> 
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_07_files/tl.jpg" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/tc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_files/tr.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td background="Tutorial_07_files/l.gif"><img src="Tutorial_07_files/l.gif" height="28" width="28"></td>
      <td valign="top" width="100%">这四行检查是否按下了PageUp键。若是的话,减少z变量的值。这样DrawGLScene函数中包含的glTranslatef(0.0f,0.0f,z)调用将使木箱离观察者更远一点。</td>
    <td background="Tutorial_07_files/r.gif"><img src="Tutorial_07_files/r.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_07_files/bl.gif" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/bc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_files/br.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>
<font color="#aaffaa" size="3"> 
<pre>				if (keys[VK_PRIOR])				<font color="#ffffaa">// PageUp按下了?</font>
				{
					z-=0.02f;				<font color="#ffffaa">// 若按下,将木箱移向屏幕内部</font>
				}
</pre>
</font> 
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_07_files/tl.jpg" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/tc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_files/tr.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td background="Tutorial_07_files/l.gif"><img src="Tutorial_07_files/l.gif" height="28" width="28"></td>
      <td valign="top" width="100%">接着四行检查PageDown键是否按下,若是的话,增加z变量的值。这样DrawGLScene函数中包含的glTranslatef(0.0f,0.0f,z)调用将使木箱向着观察者移近一点。</td>
    <td background="Tutorial_07_files/r.gif"><img src="Tutorial_07_files/r.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_07_files/bl.gif" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/bc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_files/br.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>
<font color="#aaffaa" size="3"> 
<pre>				if (keys[VK_NEXT])				<font color="#ffffaa">// PageDown按下了么</font>
				{
					z+=0.02f;				<font color="#ffffaa">// 若按下的话,将木箱移向观察者</font>
				}
</pre>
</font> 
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_07_files/tl.jpg" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/tc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_files/tr.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td background="Tutorial_07_files/l.gif"><img src="Tutorial_07_files/l.gif" height="28" width="28"></td>
      <td valign="top" width="100%">现在检查方向键。按下左右方向键xspeed相应减少或增加。按下上下方向键yspeed相应减少或增加。记住在以后的教程中如果xspeed、yspeed的值增加的话,立方体就转的更快。如果一直按着某个方向键,立方体会在那个方向上转的越快。</td>
    <td background="Tutorial_07_files/r.gif"><img src="Tutorial_07_files/r.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
  <tr>
    <td><img src="Tutorial_07_files/bl.gif" height="28" width="28"></td>
    <td width="100%"><img src="Tutorial_07_files/bc.gif" height="28" width="100%"></td>
    <td><img src="Tutorial_07_files/br.gif" height="28" width="28"></td>
  </tr>
</tbody>
</table>
<font color="#aaffaa" size="3"> 
<pre>				if (keys[VK_UP])				<font color="#ffffaa">// Up方向键按下了么?</font>
				{
					xspeed-=0.01f;				<font color="#ffffaa">// 若是,减少xspeed</font>
				}
				if (keys[VK_DOWN])				<font color="#ffffaa">// Down方向键按下了么?</font>
				{
					xspeed+=0.01f;				<font color="#ffffaa">// 若是,增加xspeed</font>
				}
				if (keys[VK_RIGHT])				<font color="#ffffaa">// Right方向键按下了么?</font>
				{
					yspeed+=0.01f;				<font color="#ffffaa">// 若是,增加yspeed</font>
				}
				if (keys[VK_LEFT])				<font color="#ffffaa">// Left方向键按下了么?</font>
				{
					yspeed-=0.01f;				<font color="

⌨️ 快捷键说明

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