前四周的课程结束了,将所学的东西整理整理。代码有些杂乱,可读性小。因此整理了一番。整理的内容可分为以下几个方面:
命名;
减少代码冗余和重复;
修改bug(部分)。
另外还有一部分内容,以后再进行整理:代码注释;代码重构,抽象出框架。
代码命名一直是我比较头疼的一个问题。
我正经学过的语言只有c和c#,现在用的最多的就是c#。
之前查过很多命名规范,但是用起来总感觉还是很乱。
昨天又在网上查了查一些关于命名规范的博客:
其中有一篇是微软官方的命名规范:
框架设计准则
我平时所用的命名方法部分与它所规定的命名规范是一样的。例如类名,方法名,接口名,属性名等都是用大驼峰,参数名等用小驼峰。
但是另外一部分是不一样的。到目前为止,我没有找到一种我习惯的命名方法。作为一个强迫症患者,我需要继续寻找一种命名规范,更正我的命名习惯,并且完善各种细节,这样,在以后更换命名规范时,会方便很多。
private List<int> ages = new List<int>(); //合适 private List<int> ageList = new List<int>(); //不合适
private bool isRun=false; //合适 private bool isNotRun=false; //不合适
关于命名这一块儿,还需要继续积累经验,积累规范。
在编程的时候,需要为工程增加一些功能,例如人物发出技能。一个角色可以同时拥有多个技能,在编写这些技能时,如果每个技能都写一遍,会产生大量重复的代码。这使代码的可读性降低,而且对我来说,代码也不美观。因此,我将相同的部分进行了抽象,让具体的技能都继承于这个类。并且利用虚函数,减少代码冗余。
具体就是Skill系列代码,进行了抽象,并且代码的编写速度大幅提高。
另外,有很多资源需要Resources.Load出来,需要提供具体的路径。但是这些路径一旦改变,再去找各个脚本中的路径,会很麻烦,因此,我将这些路径都写在一个GameDefinition类里面,写成字符串常量。这样进行同一管理,方便修改和查找。当路径发生变化时,直接去这个定义类里查找和修改。
今天的bug,仅仅指运行中出现的错误,不包括运行中的不完美的地方。
我稍微有些追求完美,现在已经在尽力改掉这个毛病了,因为追求完美真的很耽误事,它只会加重我的拖延症。
在运行时,
public override void RecieveMessage(MessageClass message) { base.RecieveMessage(message); if (message.Command == MessageType.Quest_AddQuest) { //--------这一块是从0 开始,但是任务id从1开始。---------待解决---------- //原因:在inspector面板上,NPC乔巴的taskId是0,因此,出现错误。 AddQuest((int)message.Contend); } if (message.Command == MessageType.Quest_Enemy) { AddEnemy((int)message.Contend); } }
这一块是出了错误的,原因是字典中没有message.Content这个键值。在联调之后,发现这个参数值是从0开始。无奈之下,我只能将该值进行加1。这样,工程能正常运行了。
在调整NPC时,发现NPC身上的一个参数赋值为0,导致了工程在运行时报错。再次将它赋值为1,然后message.Content恢复,将“+1”去掉,这样工程不再报错。
在进行多个NPC开启任务时,又遇到了报错。这个错误在今天即将结束之际还没有找到。
另外,关于Application.dataPath,Application.streamingAssetsPath这两个的用法还没有完全弄明白;XML和json两种文件的解析和用法也不清楚。需要继续学习。
该工程项目需要继续优化。让代码变得更加优美,提高代码可读性,抽象出一个合理的框架。
工程文件之后进行托管。
本篇日记用时:大约一小时。需要提高速度。
今日代码修改:用时约6小时,增删改代码量不到100行。
需改进的地方:编程速度慢,需要多写代码。本月剩余时间,需要写200行有效代码。