📄 tutorial_19.htm
字号:
<td><img src="Tutorial_19_files/br.gif" height="28" width="28"></td>
</tr>
</tbody></table>
<font color="#aaffaa" size="3">
<pre> float x; <font color="#ffffaa">// X 位置</font>
float y; <font color="#ffffaa">// Y 位置</font>
float z; <font color="#ffffaa">// Z 位置</font>
</pre>
</font>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody><tr>
<td><img src="Tutorial_19_files/tl.jpg" height="28" width="28"></td>
<td width="100%"><img src="Tutorial_19_files/tc.gif" height="28" width="100%"></td>
<td><img src="Tutorial_19_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_19_files/l.gif"><img src="Tutorial_19_files/l.gif" height="28" width="28"></td>
<td valign="top" width="100%"> 下面三个变量很重要.这三个变量控制粒子在每个轴上移动的快慢和方向.如果xi是负价粒子将会向左移动,正值将会向右移动.如果yi是负值粒子将会向下移动,正值将向上.最后,如果zi负值粒子将会向荧屏内部移动,正植将移向观察者.
</td>
<td background="Tutorial_19_files/r.gif"><img src="Tutorial_19_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_19_files/bl.gif" height="28" width="28"></td>
<td width="100%"><img src="Tutorial_19_files/bc.gif" height="28" width="100%"></td>
<td><img src="Tutorial_19_files/br.gif" height="28" width="28"></td>
</tr>
</tbody></table>
<font color="#aaffaa" size="3">
<pre> float xi; <font color="#ffffaa">// X 方向</font>
float yi; <font color="#ffffaa">// Y 方向</font>
float zi; <font color="#ffffaa">// Z 方向</font>
</pre>
</font>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody><tr>
<td><img src="Tutorial_19_files/tl.jpg" height="28" width="28"></td>
<td width="100%"><img src="Tutorial_19_files/tc.gif" height="28" width="100%"></td>
<td><img src="Tutorial_19_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_19_files/l.gif"><img src="Tutorial_19_files/l.gif" height="28" width="28"></td>
<td valign="top" width="100%">最后,另外3个变量!每一个变量可被看成加速度.如果xg正值时,粒子将会被拉倒右边,负值将拉向左边.所以如果粒子向左移动(负的)而我们给它一个正的加速度,粒子速度将变慢.最后将向反方向移动(高中物理).yg拉下或拉上.zg拉进或拉出屏幕.<br></td>
<td background="Tutorial_19_files/r.gif"><img src="Tutorial_19_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_19_files/bl.gif" height="28" width="28"></td>
<td width="100%"><img src="Tutorial_19_files/bc.gif" height="28" width="100%"></td>
<td><img src="Tutorial_19_files/br.gif" height="28" width="28"></td>
</tr>
</tbody></table>
<font color="#aaffaa" size="3">
<pre> float xg; <font color="#ffffaa">// X 方向重力加速度</font>
float yg; <font color="#ffffaa">// Y 方向重力加速度</font>
float zg; <font color="#ffffaa">// Z 方向重力加速度</font>
</pre>
</font>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody><tr>
<td><img src="Tutorial_19_files/tl.jpg" height="28" width="28"></td>
<td width="100%"><img src="Tutorial_19_files/tc.gif" height="28" width="100%"></td>
<td><img src="Tutorial_19_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_19_files/l.gif"><img src="Tutorial_19_files/l.gif" height="28" width="28"></td>
<td valign="top" width="100%">结构的名字为particles.</td>
<td background="Tutorial_19_files/r.gif"><img src="Tutorial_19_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_19_files/bl.gif" height="28" width="28"></td>
<td width="100%"><img src="Tutorial_19_files/bc.gif" height="28" width="100%"></td>
<td><img src="Tutorial_19_files/br.gif" height="28" width="28"></td>
</tr>
</tbody></table>
<font color="#aaffaa" size="3">
<pre>}
particles; <font color="#ffffaa">// 粒子数据结构</font>
</pre>
</font>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody><tr>
<td><img src="Tutorial_19_files/tl.jpg" height="28" width="28"></td>
<td width="100%"><img src="Tutorial_19_files/tc.gif" height="28" width="100%"></td>
<td><img src="Tutorial_19_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_19_files/l.gif"><img src="Tutorial_19_files/l.gif" height="28" width="28"></td>
<td valign="top" width="100%">下面我们创建一个数组叫particle.数组存储MAX_PARTICLES个元素.也就是说我们创建1000(MAX_PARTICLES)个粒子,存储空间为每个粒子提供相应的信息<br></td>
<td background="Tutorial_19_files/r.gif"><img src="Tutorial_19_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_19_files/bl.gif" height="28" width="28"></td>
<td width="100%"><img src="Tutorial_19_files/bc.gif" height="28" width="100%"></td>
<td><img src="Tutorial_19_files/br.gif" height="28" width="28"></td>
</tr>
</tbody></table>
<font color="#aaffaa" size="3">
<pre>particles particle[MAX_PARTICLES]; <font color="#ffffaa">// 保存1000个粒子的数组</font>
</pre>
</font>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody><tr>
<td><img src="Tutorial_19_files/tl.jpg" height="28" width="28"></td>
<td width="100%"><img src="Tutorial_19_files/tc.gif" height="28" width="100%"></td>
<td><img src="Tutorial_19_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_19_files/l.gif"><img src="Tutorial_19_files/l.gif" height="28" width="28"></td>
<td valign="top" width="100%"> 在颜色数组上我们减少一些代码来存储12中不同的颜色.对每一个颜色从0到11我们存储亮红,亮绿,和亮蓝.下面的颜色表里包含12个渐变颜色从红色到紫罗兰色</td>
<td background="Tutorial_19_files/r.gif"><img src="Tutorial_19_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_19_files/bl.gif" height="28" width="28"></td>
<td width="100%"><img src="Tutorial_19_files/bc.gif" height="28" width="100%"></td>
<td><img src="Tutorial_19_files/br.gif" height="28" width="28"></td>
</tr>
</tbody></table>
<font color="#aaffaa" size="3">
<pre>static GLfloat colors[12][3]= <font color="#ffffaa">// 彩虹颜色</font>
{
{1.0f,0.5f,0.5f},{1.0f,0.75f,0.5f},{1.0f,1.0f,0.5f},{0.75f,1.0f,0.5f},
{0.5f,1.0f,0.5f},{0.5f,1.0f,0.75f},{0.5f,1.0f,1.0f},{0.5f,0.75f,1.0f},
{0.5f,0.5f,1.0f},{0.75f,0.5f,1.0f},{1.0f,0.5f,1.0f},{1.0f,0.5f,0.75f}
};
</pre>
</font> <font color="#aaffaa" size="3"> </font>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody><tr>
<td><img src="Tutorial_19_files/tl.jpg" height="28" width="28"></td>
<td width="100%"><img src="Tutorial_19_files/tc.gif" height="28" width="100%"></td>
<td><img src="Tutorial_19_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_19_files/l.gif"><img src="Tutorial_19_files/l.gif" height="28" width="28"></td>
<td valign="top" width="100%"> 这段代码调用前面的代码载入位图,与前面的代码相同,只是位图的名称不同。载入一符名为Particle.bmp的位图</td>
<td background="Tutorial_19_files/r.gif"><img src="Tutorial_19_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_19_files/bl.gif" height="28" width="28"></td>
<td width="100%"><img src="Tutorial_19_files/bc.gif" height="28" width="100%"></td>
<td><img src="Tutorial_19_files/br.gif" height="28" width="28"></td>
</tr>
</tbody></table>
<font color="#aaffaa" size="3">
<pre> if (TextureImage[0]=LoadBMP("Data/Particle.bmp")) <font color="#ffffaa">// 载入粒子纹理</font>
</pre>
</font><font color="#aaffaa" size="3"> </font>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody><tr>
<td><img src="Tutorial_19_files/tl.jpg" height="28" width="28"></td>
<td width="100%"><img src="Tutorial_19_files/tc.gif" height="28" width="100%"></td>
<td><img src="Tutorial_19_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_19_files/l.gif"><img src="Tutorial_19_files/l.gif" height="28" width="28"></td>
<td valign="top" width="100%">窗口改变大小的代码和前面一样,不需要改变 </td>
<td background="Tutorial_19_files/r.gif"><img src="Tutorial_19_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_19_files/bl.gif" height="28" width="28"></td>
<td width="100%"><img src="Tutorial_19_files/bc.gif" height="28" width="100%"></td>
<td><img src="Tutorial_19_files/br.gif" height="28" width="28"></td>
</tr>
</tbody></table>
<font color="#aaffaa" size="3"> </font> <font color="#aaffaa" size="3"> </font>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody><tr>
<td><img src="Tutorial_19_files/tl.jpg" height="28" width="28"></td>
<td width="100%"><img src="Tutorial_19_files/tc.gif" height="28" width="100%"></td>
<td><img src="Tutorial_19_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_19_files/l.gif"><img src="Tutorial_19_files/l.gif" height="28" width="28"></td>
<td valign="top" width="100%"> 我们使用光滑的阴影,清除背景为黑色,关闭深度测试,绑定并映射纹理.启用映射位图后我们选择粒子纹理。唯一的改变就是禁用深度测试和初始化粒子</td>
<td background="Tutorial_19_files/r.gif"><img src="Tutorial_19_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_19_files/bl.gif" height="28" width="28"></td>
<td width="100%"><img src="Tutorial_19_files/bc.gif" height="28" width="100%"></td>
<td><img src="Tutorial_19_files/br.gif" height="28" width="28"></td>
</tr>
</tbody></table>
<font color="#aaffaa" size="3">
<pre> glDisable(GL_DEPTH_TEST); <font color="#ffffaa">//禁止深度测试</font>
</pre>
</font>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody><tr>
<td><img src="Tutorial_19_files/tl.jpg" height="28" width="28"></td>
<td width="100%"><img src="Tutorial_19_files/tc.gif" height="28" width="100%"></td>
<td><img src="Tutorial_19_files/tr.gif" height="28" width="28"></td>
</tr>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -