`
981875739
  • 浏览: 7661 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论

黄金矿工游戏总结

 
阅读更多

     经过近二十天的努力,黄金矿工游戏初见雏型,它是我们对线程理解的应用,游戏的仿照版本就是网页版的黄金矿工小游戏。刚开始做这个小游戏的时候,感觉自己无从下手,毫无头绪。

    这个游戏的准备工作就是P图,将游戏所需要的图片准备好,例如各种大小的金矿,石头,钩子,钱袋……真心觉得扣图是一件挺花时间的东西,如果自己熟练掌握了,那就挺简单的。我想要想做好一个游戏,各方面的东西技术还是要掌握一些的,方便又有效率。

    最开始的时候我创建了所有我能想到的线程,但是经过运行测试,发现两个线程可能会同时进行而造成报错,这时我意识到最好用自己的线程去控制自己的对象,不要进行线程交叉。

   我在做这个小游戏的时候,遇到的最大的问题就是钩子的摆动和运动,钩子遇到边界反弹。钩子旋转摆动用的是rotate函数,在使用时出现了不少问题,经过了一下午的研究测试,我才弄明白其具体运动的方法,才知道它摆动时是以一个固定的点为圆心摆动,以垂直方向为参考,向左为正角度,向右为负角度。经过好几次修改代码,才把角度与sin,cos值之间的正确关系确立。

    还有就是解决当钩子放出去后,钩子沿之前摆动的角度方向运行,抓到东西或者遇到边界后反方向运动,返回钩子旋转点后,钩子继续进行摆动。解决这个问题的办法就是给钩子抓东西时运动和旋转运动添加两个判断条件,当满足其中一个条件时,执行其中一个。否则就可能出现当钩子抓完东西返回原位置时,钩子就停住了,不可以在转动。

    我设置了不少boolean型的变量,这样的使用会使得编代码时很方便,可以很好的控制各种运行状态。我设置了等。。。。。。变量。

    在控制边界条件,使钩子反弹时,我纠结了好久,因为是使用cos,sin函数来进行计算的,所以当钩子超出边界后,向反方向运动后,移动的位置大小依然满足碰边条件,变量一直在正负交替变化,使得钩子在边界上来回跳动。最后一个学长就是给我添加了一个控制变量,使得这个问题得以解决。

   基本的线程控制都是在钩子线程中实现的。

   完成这个黄金矿工的游戏,考察了我们的思维严谨能力,如考虑一些边界问题,队列边界问题等,如果有那里没考虑到就可能出现运行报错,下标越界等问题。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics