上周日给自己制定了一个第十周(11.2-11.8)的周计划,完成的具体如何呢?这周日就让我进想一下总结吧(主要是想偷个懒,你们什么都没看见)!
一、周计划的大致内容如下:
周一到周五把游戏的基本框架做出来让游戏能够正常的运行,周六周日进行一下代码以及窗口的优化。
二、任务完成度(约70%)具体如下:
(一)达到预期的任务:
1. 通过键盘监听来实现人物的移动move()方法。
具体:打砖块中自己控制的那一个砖块的移动
2. 实现了物体的删除。
具体: 当小球碰到敌方砖块(及需要消耗的砖块)之后敌方的砖块会在屏幕中消失。
3. 通过矩形框来判断物体的碰撞检测,并实现相应的操作
具体:(1)当碰到墙壁、自己砖块、敌方砖块之后小球的方向会发生改变。
(2)在球碰到自己的砖块的瞬间会根据砖块的移动方向去调整球的角度和移动方向。
(3) 解决了在较短时间内球多次碰撞砖块导致的连续反弹的问题。
(二)未达到预期的任务:
1.代码以及窗口的优化
(1)屏幕闪烁问题
具体: 在调用画笔的时候,因为需要添加很多重复的内容(98个左右,Σ( ° △ °|||)︴)我直接使用了一个循环来解决这些赘余的代码,但是由于我不会用双缓冲,还没得学所以到现在这个问题还没有解决。
(2)开始—暂停—结束
描述: 这个最开始的时候想着并不难做,心中有个大致的思路,想着先放着,先做其他的主要内容,周四(5号)左右我尝试了一下我的方法,但是好像行不通,我又把它先放下了,先做其他的。
(3)整个代码的通判审核、优化、注释等
三、 一周的具体时间分配:
主要是记录一下我这周都干了什么。
周一 :上午的时候我还在纠结按键监听的时候怎么让两个按键实现同一个功能(例如:上键和W怎么同时都可以控制人物的向上移动)。起初,我完成了一个按键来实现砖块的上下左右之后,我就想能不能让两个按键同时具有当时这一个移动的功能。我想到的第一种方法是使用switch来实现这一功能,然后我就憨憨的使用了case W && ⬆ : …… break; 这种操作,然后就没有然后了。行不通之后,我开始尝试用if去写,刚写了一点我就去上课了,上课的时候。我忽然就茅塞顿开switch的使用方法就解决了,使用几个按键共用这一个功能就去写几个case 但是之间不要写break就行了。下午的时候添加了一些其他的按键操作以及功能。晚上的时候我问组长了几个问题,然后组长看了看我的代码,说我的代码不怎么符合面向对象编程的形式,内容太乱,耦合性太高了。之后我去看了看别人的代码重新理解了一下面向对象的写作方法,就重新写了我的所有代码(当天就写了一部分),感觉写的时候比以前通畅多了。
周二, 尝试书写碰撞测试。这最开始对我来说真是一个大问题基本上一天都在思考这个东西 ,因为球的速度太快的原因有的时候球会跑进我的砖里面,然后一直触发碰撞检测,然后角度一直在改变。导致游戏基本无法运行。一天没有解决这个问题。晚上去问了班主任一些问题,决定了游戏的几个大方向。
周三,继续去尝试碰撞检测的问题,到下午的时候解决了这个问题,然后剩下的时间尝试去优化了一下一些细节的问题,晚上开始尝试去书写敌人砖块类。
周四,完成了敌人类的书写,并让球与其相兼容,然后就遇到了一直闪烁的问题。并进行开始暂停结束的书写,结果失败了。
周五-周日,我发现我对GUI的认识不太够,然后从周五开始就在刷一些GUI的视频(狂神 GUI),中间穿插着Java班结班仪式的节目排练。
四、反思与总结
(1)给自己的安排还是不太合理,如明知这周有Java班的结班仪式,还没有把他考虑在时间的规划之内。
(2)周五到周日期间穿插了一些GUI的学习发现了自己在这方面的理解不足,然后去学习这方面,就导致了周计划的一部分任务完不成。
网友评论