(一)第四章总的来说完成了对整个游戏程序大框架的介绍。
(二)第四章侧重介绍了代码组骨架,简单来说就是代码目录,以及几个模块的作用。
代码都不难理解。
(三)第五章将对第四章所建立的框架进行丰满,并加入一些新的重要的模块。
下面是一些理解、注意点以及疑问。
(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也是重头戏,在第五章中会详细介绍,那么就放在第五章的记录里写了~
(二)第四章侧重介绍了代码组骨架,简单来说就是代码目录,以及几个模块的作用。
代码都不难理解。
(三)第五章将对第四章所建立的框架进行丰满,并加入一些新的重要的模块。
下面是一些理解、注意点以及疑问。
(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也是重头戏,在第五章中会详细介绍,那么就放在第五章的记录里写了~