人气 222

[游戏程序] 游戏制作漫谈 [复制链接]

九艺网 2017-3-10 17:02:03

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
   搞游戏的有很大一部分原来并不是计算机系的,所以写出来的程序比较野。尤其是业余的刚开始步入这个领域的。本人也正在经历这种转变。因此,在这里写一下我所领悟的一些东西。希望对初学者有益。
   代码组织:
      .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。因为本身的最重要的关联关系没有做什么化解。相反程序还要多做很多工(虽然也并不多)。单体类存在的最大意义就是能保证工程中有唯一的实例。
  
  这些还是留在下次再说吧。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|小黑屋|九艺游戏动画论坛 ( 津ICP备2022000452号-1 )

GMT+8, 2024-4-29 10:30 , Processed in 0.055761 second(s), 23 queries .

Powered by Discuz! X3.4  © 2001-2017 Discuz Team.