入职第二个礼拜的周四,在结束了图形学软光栅demo后主程大哥给了我第一个任务,修改一个bug,对话剧情中,当场景切换时会出现一个场景坐标来展示场景的名字,但是当这个场景坐标还未消失时就出现了人物的对话。
由于是第一次接触,负责带我的t哥告诉了我这个任务逻辑在哪个lua文件中,让我先看懂代码逻辑。但是代码很长,第一次看就是从头文件require部分一行行向下读,也不理解各个接口的调用关系,因此看了两天完全看不懂代码执行逻辑。最后在其中一处发现了一个对话延迟时间为0秒,然后就试一试改成了1秒,结果发现坐标结束后经过了1秒出现了对话剧情,解决了bug,然后就给策划提交了更改逻辑。
紧接着主程哥看到说不能这么改,这会导致其他地方的对话出现问题,因此把这个bug转交给了t哥,最后由t哥解决了这个bug。
反思:
主程哥后来给了我第二个任务,一个新功能,在现有每日分享的基础上增加当有活动开启时,在活动开启的第一天要将每日分享的图替换为活动图。
当时仍旧处于不知道如何去做,不过有了第一次的经验,我首先理清楚新功能的实现要点,然后接下来的问题为如何找相关lua文件代码,t哥再次给我演示了一遍如何根据UI寻找对应lua代码,这次算是真的学会了这个简单的步骤(哈哈当时真的完全山啥也不会)。
找到了对应目标代码文件,接下来的问题是代码看不懂,这次思考了不能直接这么问代码看不懂,总不能让别人一行行给你讲吧。因此我思考了真正看不懂的原因,并不是像C++一样的高难度语法看不懂,而是每个函数的功能,里面需要函数的形参以及函数在哪里调用都不懂。这次t哥给我讲了第二个十分有用的技巧,就是去对代码进行debug,啊,打断点我哪会啊,当时没敢继续问就又开始闷头搞如何debug了,中午吃饭问了t哥,说在代码里面加print或者warn就行。哦哦原来是这样,那我会。于是就将那一整个文件每一个函数都打上了开始执行以及结束执行,然后运行游戏观察函数的调用顺序。
通过上述方法大致了解了函数的执行过程,定位到了分享的逻辑代码是哪一块。继续思考接下来的问题,先不管别的,怎么将里面的图片替换掉。将图片成功替换掉后,接下来的问题是应该先判断活动开启后然后将里面的图片进行替换。t哥说这个有一个activity_id来控制活动的开关,在其他文件已经写好了判断活动是否开启的函数isOpen(activity_id)。因此,在原有代码的基础带上进行一个if判断即可。
然后继续思考,第一天如何判断,就应该取到活动的开启时间以及当前服务器时间,其差值为一天内即可,即每次调用时首先判断活动开启状态,然后判断开始时间是否在一天内。时间函数是由旁边的y哥告诉我的使用方法以及有关的ua文件。
最后通过多次尝试,成功解决了这个新需求,也是我第一次解决的需求。
反思:
未完。。。