打印本文 打印本文 关闭窗口 关闭窗口
NeHe的opengl教程delphi版(9)----星星
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2425  更新时间:2009/4/23 18:37:36  文章录入:mintao  责任编辑:mintao
bsp;      star[loop].angle := star[loop].angle + Trunc(loop) / 50;  // 改变星星的自转角度
         star[loop].dist := star[loop].dist - 0.01; // 改变星星离中心的距离

         {接着几行检查星星是否已经碰到了屏幕中心。
         当星星碰到屏幕中心时,我们为它赋一个新颜色,然后往外移5个单位,
         这颗星星将踏上它回归屏幕中心的旅程。}

         If (star[loop].dist < 0.0) Then // 星星到达中心了么
            Begin
               star[loop].dist := star[loop].dist + 5.0; // 往外移5个单位
               star[loop].r := random(256); // 赋一个新红色分量
               star[loop].g := random(256); // 赋一个新绿色分量
               star[loop].b := random(256); // 赋一个新蓝色分量
            End;
      End;
End;

{
 现在我们添加监视键盘的代码。
 下移到WinMain()。找到SwapBuffers(hDC)一行。
 我们就在这一行后面增加键盘监视代码。
 代码将检查T键是否已按下。
 如果T键按下过,并且又放开了,if块内的代码将被执行。
 如果twinkle为FALSE,他将变为TRUE。
 反之亦然。只要T键按下, tp就变为TRUE。
 这样处理可以防止如果您一直按着T键的话,块内的代码被反复执行。
 }
 If (keys[ord(''''T'''')] And Not tp) Then  // 是否T 键已按下并且 tp值为 FALSE
    Begin
       tp := TRUE;        // 若是,将tp设为TRUE
       twinkle := Not twinkle; // 翻转 twinkle的值
    End;
 {
 下面的代码检查是否松开了T键。
 若是,使 tp=FALSE。
 除非tp的值为FALSE,
 否则按着T键时什么也不会发生。所以这行代码很重要。
 }
 If (Not keys[Ord(''''T'''')]) Then //  T 键已松开了么?
    Begin
       tp := FALSE;       // 若是 ,tp为 FALSE
    End;
 {余下的代码检查上、下方向键,向上翻页键或向下翻页键是否按下。}
 If (keys[VK_UP]) Then    // 上方向键按下了么?
    tilt := tilt - 0.5;   // 屏幕向上倾斜
 If (keys[VK_DOWN]) Then  // 下方向键按下了么?
    tilt := tilt + 0.5;   // 屏幕向下倾斜
 If (keys[VK_PRIOR]) Then // 向上翻页键按下了么
    zoom := zoom - 0.2;   // 缩小
 If (keys[VK_NEXT]) Then  // 向下翻页键按下了么?
    zoom := zoom + 0.2;   // 放大
 {
 这一课我尽我所能来解释如何加载一个灰阶位图纹理,
 (使用混色)去掉它的背景色后,再给它上色,最后让它在3D场景中移动。
 我已经向您展示了如何创建漂亮的颜色与动画效果。
 实现原理是在原始位图上再重叠一份位图拷贝。
 到现在为止,只要您很好的理解了我所教您的一切,
 您应该已经能够毫无问题的制作您自己的3D Demo了。
 所有的基础知识都已包括在内!}

//========myling :

//1-9课已经翻译完了,就象NEHE说的,基本的知识已经基本说完了

//我看了下后面的教程,好像是出自其他人之手,如果有好的例子,我会选择性的继

//续贴的,好累,睡一会:)  ,下次见

上一页  [1] [2] [3] 

打印本文 打印本文 关闭窗口 关闭窗口