任务:
1.优化:面向对象编程1-15课
总结:
①枚举类型的使用。——自定义的数据类型,在命名空间下使用,关键字enum。如星期、性别、RPG人物、切水果中水果类型等可以自定义,规范化。
②结构体类型。——用来封装一些小型变量数据,比如保存一个人的基本信息。和对象很类似。定义如下
public struct Person
{
public string name ;
public int age ;
public Gender gender ;
public string address ;
}
class Program
{
static void Main(string[] args)
{
//保持人的基本信息,姓名,年龄,性别,地址
Person hanleeRao = new Person();
hanleeRao.name = "hanleerao";
hanleeRao.age = 23;
hanleeRao.gender = Gender.男;
hanleeRao.address = "深圳";
}
}
③类:根据不同特征分类,描述的是这类食物的特征(字段、属性、方法)
④对象:描述一个具体的个体,也就是对象,一定是具体的。通过类实例化出来的就是对象(类名 对象名=new 类名();)
⑤三种方法的学习(普通方法、构造方法、析构方法)
⑥创建一个类要注意的地方:一、根据说给信息,分析类总包括哪些字段、那些方法,列出来。二、通过分析,抽象出有哪些共有部分,抽取出来作为一个父类。三、通过父类,之类可以继承,共享父类资源,达到优化代码结构,提高代码复用性,为多态提供前提。
⑦继承之构造方法。父类:空构造方法、有产构造方法。
子类:
public AiLuoKe(...):base(...)前后对应父类方法的传入参数
⑧继承之成员继承。 子类继承父类:字段。base.字段名。 属性。base.属性名 方法,构造方法。base()
①元表的学习。——元表是用来定义一些方法,改变table的行为。
mytable=setmetatable(mytable,mymetatable)
__index元方法,用来访问不存在索引是调用 __newindex用来对添加新数据时使用。 +-*/操作对应的方法,对应的操作在菜鸟教程网站。
② 协同程序(coroutine)任一指定时刻只能有一个协同程序运行(由程序员控制这么进行的)
线程,可以同时多个运行,(用CPU控制调用,和电脑核数有关)
③定义、启动、暂停、继续协同程序的方法:
--定义
co=coroutine.create(
function(a,b) --匿名函数
print(a+b)
coroutine.yield()
print(a-b)
end
)
--启动协程
coroutine.resume(co,20,30) --指定启动的协程,给匿名函数赋初值
print()
coroutine.resume(co) 不用传递参数
任务:
3.优化:弹窗加入打开、关闭效果
总结:
①为防止在加载前使用打开弹窗动画,需要用callback来调用动画。
function this.Show(_title,_text)
if this.gameObject == nil then
local loadHandler = LoadResHandler.New()
loadHandler.resPath = "common/PVPpopoverBox"
loadHandler.callback = function ()
--界面加载完毕,动画特效
DialogAnimTool.OpenWindowAnim(this.gameObject,nil)
end
UISys.Instance:LoadUIAsync(loadHandler)
else
this.gameObject:SetActive(true)
DialogAnimTool.OpenWindowAnim(this.gameObject,nil)
this.SetLabel()
end
this.isOverlapMainUI = true --
this:RegistUSRelation() --调用ui_base中的US关系注册,prefab的根节点执行
end
总结:多对lua代码框架进行研究,在套模板的时候,也要明白模板的原理。同时,在写代码的时候,也要注意设计模式的几大原则。注意代码风格,养成良好的习惯。