徐州软件开发网、徐州程序员、徐州程序员招聘求职、徐州软件企业推荐、 软件项目交易。点击注册加入我们,进入论坛发布消息

【行动胜于雄辩】徐州程序员交流QQ群:324379(一群,满)1182709(二群).进群请先看公告! 招聘求职请先在本站'招聘\求职区'发布,只在群里发布的,将被请出程序员交流群! 谢谢合作

本主题共有 0 篇回复,最新回复发表于 10-12-2009 19:32,作者 xzsdn_08
页 1 / 1 (1 项)
帖子排序: 上一主题 下一主题
  • 10-12-2009 19:32

    • xzsdn_08
    • 灌水10强
      男
    • 注册时间 01-04-2009
    • 江苏徐州
    • 发帖总数 641

    游戏是这样写成的(第五篇:MD2模型显示)

    作者: dr_watson

    目前dr_watson为Cocoachina读者带来的原创优秀教学《游戏是这样写成的》系列文章已经发表了四篇,给广大iPhone开发者在游戏开发方面以极大的帮助。今天给读者们带来第五篇:MD2模型显示,相信会让广大iPhone游戏开发者学习到更多iPhone 3D游戏开发的知识。

    《游戏是这样写成的》iPhone游戏开发系列教学,作者:dr_watson,优秀iPhone游戏CubicMan开发者。

    第一篇: 建立 OpenGL ES 项目
    第二篇: 混合 C/C++/Obj-C 的应用
    第三篇: 简单的游戏框架
    第四篇: 缩放和混色

    cocoachina.com专稿,如需转载请提前联系。



    Seven同学在论坛讨论怎样显示MD2,正好我以前在PSP上有个MD2的类,我把它移植了过来,给大家参考一下或拿来玩玩。

    在Wrapper里,我也加了两个新功能,一个是Enable2D,一个是Enable3D,方便我们混合2D/3D。

     

    1. void Enable2D()
    2. {
    3.     int width = SCREEN_WIDTH;
    4.     int height = SCREEN_HEIGHT;
    5.    
    6.     glViewport      (0, 0, width, height);
    7.    
    8.     glMatrixMode    (GL_PROJECTION);
    9.     glLoadIdentity  ();
    10.     glOrthof(0, (float)width, 0, (float)height, 0, 100);
    11.     glMatrixMode    (GL_MODELVIEW);
    12.     glLoadIdentity();
    13.    
    14.     glEnable                (GL_BLEND);
    15.     glEnable                (GL_TEXTURE_2D);
    16.     glDisable                (GL_CULL_FACE);
    17.     glDisable                (GL_DEPTH_TEST);
    18.     glDisable                (GL_LIGHTING);
    19.     //glDisableClientState    (GL_NORMAL_ARRAY);
    20.    
    21. }
    22.  
    23.  
    24. void Enable3D()
    25. {    
    26.     int width = SCREEN_WIDTH;
    27.     int height = SCREEN_HEIGHT;
    28.     float aspect = (float)width/(float)height;
    29.    
    30.     glViewport          (0, 0, width, height);
    31.     glScissor           (0, 0, width, height);
    32.    
    33.     //glMatrixMode        (GL_MODELVIEW);
    34.     //glLoadIdentity      ();
    35.    
    36.     glMatrixMode        (GL_PROJECTION);
    37.     glLoadIdentity      ();
    38.     InitPerspective     (60.f, aspect, 0.1f, 1000.f);
    39.    
    40.     glMatrixMode        (GL_MODELVIEW);
    41.     glLoadIdentity      ();
    42.    
    43.    
    44.     glEnable           (GL_CULL_FACE);
    45.     //glDisable            (GL_BLEND);
    46.     glEnable            (GL_DEPTH_TEST);
    47.     //glEnable            (GL_LIGHTING);
    48.     //glEnableClientState (GL_NORMAL_ARRAY);
    49.    
    50.     //glEnable(GL_NORMALIZE);    
    51. }

    因为我们没有用lighting, 我把Normal Array暂时弄走了。

    这个例子,每隔8秒会换到另一个动作。人的模型是732面,枪是102面。

    标签:
页 1 / 1 (1 项)
徐州软件开发网、徐州软件开发社区、徐州程序员
© Copyright 2008-2011 XZSDN.NET   Powered By communityserver   站长博客 我的Blog
苏ICP备09002379号 | 意见反馈 | 联系我