第四章的学习记录

来源:互联网 发布:手机淘宝好评率查询 编辑:程序博客网 时间:2024/05/20 11:46
(一)第四章总的来说完成了对整个游戏程序大框架的介绍。
(二)第四章侧重介绍了代码组骨架,简单来说就是代码目录,以及几个模块的作用。
            代码都不难理解。
(三)第五章将对第四章所建立的框架进行丰满,并加入一些新的重要的模块。

下面是一些理解、注意点以及疑问。

(1)P102:访问对象的几种方法。第一,通过句柄访问,第二,通过已经赋予对象的名称来访问。
          疑问在方法二上,书上描述是对对象命名可以用字符串,标识符,以及包含标识符或字符串的变量。
         例子为:
        
         A
         MyObject.aproperty=42;
         B
         "MyObject".aproperty=42;
         C
         %Objname=MyObject;
         %Objname.aproperty=42;
         D
         %Objname="MyObject";
         %Objname.aproperty=42;
 
         那么,带引号和不带引号的MyObject各是什么?
         网上查询未果,我的理解是不带引号的是标识符,带引号的是字符串。MyObject是这个对象的名字,
         也就是对整个对象的命名和标识,通常意义上带引号的是字符串?!

(2)P103:命名空间。
          对于局部变量,即使是同名,我们也可以在不同函数里反复使用。其实实际上这些变量已经被限定在
          它所属于的函数中,即所谓的命名空间。
          那么相同的我们对变量加前缀来达到同样目的。例如:
          $game::maxplayer
          $server::maxplayer
          这个maxplayer显然在不同的前缀即限定下代表不同的意义。
          事实上,$和::两个符号见的标识符是任意的。
          并且,对象和它的方法属性具有上面前缀和它限定下的变量相同的意义。

(3)P103:当对象的函数被调用的时候,传递的第一个参数是指向包含此函数的对象的句柄。
          这个句柄也就是%this,它的调用是隐式的,并不实际在参数列表中显示。

(4)数据块datablock是个重要概念,有两种独特的创建语法。

(5)P105:文件夹结构的码排是需要掌握的基本功。

(6)即使是创建一个单机游戏,它还是会存在C,S端。我还没理解单机情况下C/S的工作流程。

(7)根主模块main.cs的代码
          a.首先有一个存根历程的概念,它是个空函数,并无实际工作,只是TGE会在试图调用一个不存在的
          函数时产生警告,有了存根历程就避免了产生这些多余的警告……
          b.main.cs工作流程:
             对帮助信息,日志存储方式的初始化——逐个检查命令行参数,并根据参数完成任务——根据是否
             有开启帮助信息判断,有则显示帮助信息然后退出,无则继续运行游戏——上步无的情况:遍历
             命令行参数,看是否有未使用的,有则用Error()报告——若日志开启,则设置日志模式——用一个
             问号表达式来获取插件列表然后赋予SetModPaths()来设定——执行common和control下的main.cs
             ——根据刚才的插件列表来加载插件——调用两个main.cs文件中的Onstart()函数
          c.观察代码,有两个重要环节:检查命令行参数和获取加载插件。

(8)调试脚本的重要方法:函数trace();

(9)客户机上放的代码并不多并不关键包括控制设定(键映射),画面的初始化和设定等,另外一些模型,
          声音等资源应该是加密打包之后放在客户端的。

(10)我感觉第四章学完最重要的是脑中形成一个游戏目录的框架,以及几个主要模块的作用,这样C端和S
            端各完成些什么任务也就清楚了。

(11)player.cs也是重头戏,在第五章中会详细介绍,那么就放在第五章的记录里写了~
原创粉丝点击