该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
----------深入饥荒的类
上一节讲完了基本概念,如果还心存疑虑可以百度搜索"类与对象"以获取更多信息
本节将深入研究饥荒代码中的类
1.无处不在的类
当你看完上节的介绍后,就会发现饥荒代码基本上全部都是类与对象,下面介绍一些常用的类,以便后面讲解原理
EntityScript类:调用全局函数SpawnPrefab后返回便是一个EntityScript的对象,也就是说inst实际上本身就有很多函数,比如说inst:GetDisplayName(),在scripts/entityscript.lua中可以翻阅到这些函数
Vector3类:这个类的对象代表的是空间中的一个点,并且具有多种元方法,因此可以直接进行加减乘除,如果打印这个类的对象,得到的不会是table:xxxxxx,而是三维坐标值,具体可以在scripts/vector3.lua中查询,另外,Point类实际上和Vector3类是一样的
Prefab类:这个类往往作为scripts/prefabs下面各种文件的返回值,此外全局变量Prefabs中的值也是Prefab的对象,如Prefabs.spider:is_a(Prefab)将返回true
ActionHandler,EventHandler,TimeEvent,State类:这四个类均可在scripts/stategraph.lua中查到,在状态图中到处都是,StateGraph类中的有这些类的对象,通常inst.sg.sg代表的就是一个StateGraph的对象
StateGraph类:状态图类