游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4645|回复: 4

游戏制作漫谈5

[复制链接]

36

主题

382

帖子

498

积分

中级会员

Rank: 3Rank: 3

积分
498
发表于 2005-11-28 07:51:00 | 显示全部楼层 |阅读模式
   搞游戏的有很大一部分原来并不是计算机系的,所以写出来的程序比较野。尤其是业余的刚开始步入这个领域的。本人也正在经历这种转变。因此,在这里写一下我所领悟的一些东西。希望对初学者有益。

   代码组织:
      .h 中   1)
               用#ifndef xxxx
                #define xxxx

                #endif   xxxx 来定义文件。
               
               2) 尽量少包含其他的头文件,避免物理上的硬关联。
   
    .cpp     1) 尽量在.cpp中包含其他用到的头文件,避免物理上的硬关联。

  代码风格:
   好的代码首先要有好的代码风格。因此,作为初学者相比较专业的转变的一个比较重要的是确定自己的风格。
   
    变量,函数的格式:
         如果写得比较多了,或是离的时间长了,又或是代码给别人看。那么,清楚的代码很大程度上就是靠变量函数的格式了。要让读者一目了然才行。
   
     我一般这样定义:
         类中的变量 d_ 开头(很多人喜欢用m_), 全局g_ 开头, 参数,局部变量就没有了。
         后面紧跟的是类型,如 b ---- bool, lp-----指针, sz------字符串 等等。
         再后面就是 首字母大写变量名。
         举个例子。
         d_bReady         表示类中变量, 一个bool型的, 标示着各类目前可用。

    函数这样定义:
       首字母大写。如:void DoLoop();  等等。
      
      这些自己去坚持着用去寻找自己的风格就好了。用小写加下划线不错,我喜欢。不过好像这种风格的linux下和网络下更喜欢用,windows客户端还是有些区分会比较好??这纯属个人喜好了。

    结构,enum,等等的定义都挪进类中就好了。
   如
class CFrame
{
  public:
     enum{
    DEF_ERR_NOTHING = 0,
    DEF_ERR_OUTOFMEM,
    };

   struct node
  {
   ......
   };

public:
  int GetCurErr()
  {
          return d_iErr;
  }

private:
  int d_iErr;
...
};

  调用的时候会强迫你把类的类型写上去,看上去繁琐一点,不过代码开始读会更清楚一点吧。
  如 定义一个结构指针
   CFrame:: node *    lpNode;

  代码中如:
   if(  g_frame.GetErr() == CFrame:: DEF_ERR_NOTHING  )
  {.....}

  最后聊一下程序的3种风格。
  c,带类的c,面向对象。
  其中,新人应该是对面向对象比较好奇吧。但是我感觉面向对象的的几种模式并不一定就是游戏风格的首选。例如很多情况下如单体类更像是extern xxxx。因为本身的最重要的关联关系没有做什么化解。相反程序还要多做很多工(虽然也并不多)。单体类存在的最大意义就是能保证工程中有唯一的实例。
  
  这些还是留在下次再说吧。
  






   
   
   

0

主题

66

帖子

66

积分

注册会员

Rank: 2

积分
66
发表于 2005-11-29 17:11:00 | 显示全部楼层

Re:游戏制作漫谈5

O

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2005-11-29 22:22:00 | 显示全部楼层

Re:游戏制作漫谈5

pass...

4

主题

178

帖子

180

积分

注册会员

Rank: 2

积分
180
发表于 2005-11-29 23:00:00 | 显示全部楼层

Re:游戏制作漫谈5

好文

11

主题

130

帖子

132

积分

注册会员

Rank: 2

积分
132
发表于 2005-11-30 11:10:00 | 显示全部楼层

Re:游戏制作漫谈5

少使用开发包以外的头文件,合作开发中很重要
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-22 19:43

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表