在做这个小游戏,能出来基本的效果,但是整体设计上感觉有很大的问题.
所有的对象(水面上的船,水里的潜艇和潜艇发射的鱼雷)都画在一个JPanel上,人控制船移动来躲避潜艇发射鱼雷的攻击.
我并没有用多线程来实现。
船可以通过KeyAdapter来监听、处理事件,用Timer定时触发事件并在事件处理中改变潜艇坐标,并在JPanel中用paintComponent()重画对象来实现潜艇的动画,这里潜艇对象都是在游戏开始时侯已经生成了(个人认为应该由单独的线程来控制,问题一),潜艇发射的鱼雷也是动态的生成并在判断到达水面之后将其reference赋值为null,但是我并不能为这些鱼雷对象很好的配上相应的Timer来实现动画,只是在paintComponent()中重画的时候改变鱼雷的坐标并重画鱼雷位置,而且现在还没有实现船对水下的潜艇的攻击,因为考虑又要加入船所发射的炮弹的对象就更没法控制了。
所以现在这样写只能勉强实现一些功能效果,但是好象背离了面向对象的初衷。
个人考虑应该用多线程来分别控制对象,但是由于对这一部分不熟悉所以一直也没有大致的框架,相信各位也能看出来本人是小菜鸟一个,希望能给我些相对细节的指点。
深深致谢。