这里终于要开始我们的坦克大战的开发了!
正文
我个人并不认为在一个足够大的项目中一个人能尽善尽美地把所有因素都考虑在内,或许有那样的人,但做程序员太可惜了:),但是我们不能说不能全部顾着,就什么都不管不顾了。既然大多数人都不能把所有因素都考虑在内,又不能不管不顾,那么我们要考虑什么?要怎么去做,让我们的程序有章法,有很好地扩展性?我想这会是一个恒久的问题。但我个人有几点对自己做项目时考虑的想法!
首先:我们的项目得有版本意识,就正如市场上所有的软件一样,它们必定会有版本,我们不可能一次性把所有功能,所有想法都实现了,再去发布,这显然是不现实的,你可能这样做了并且成功。但或许将产品投入使用后,会发现用户或许并不喜欢你的这个想法。那么,又该如何处理?我认为做一件事,首先只需要把最基本的东西给先搞定,然后一步一步去拓展,一边听取意见,一边自己想出一些更好的办法之类的。一步一步地去做。而不需要一开始考虑过多细节!
在这里我们首先由一个基本要求:坦克大战1.0版本的基本要求就是使用GUI绘图技术在窗口上绘画出一个坦克(最好是漂亮的坦克)。
我们这里有一个对应关系
先得有窗口 --> JFrame
然后有画板 --> JPanel
再有坦克 --> Graphics 和 paint
1 package cn.vizdl.TankGame1; 2 3 import java.awt.Graphics; 4 5 import javax.swing.JFrame; 6 import javax.swing.JPanel; 7 8 9 //我的窗口 10 public class MyFrame extends JFrame{ 11 MyPanel mp = null; 12 13 //主函数 14 public static void main (String[] args) { 15 16 } 17 18 19 //构造方法初始化 20 public MyFrame() {} 21 } 22 23 //我的画板 24 class MyPanel extends JPanel { 25 //重写paint方法 26 public void paint(Graphics g) {} 27 } 28 29 //坦克类 30 class Tank{} 31 32 //我的坦克类 33 class MyTank extends Tank{}
代码解释:
这样就简单地给出了基础框架了,首先,1.0是有四个类的,画板贴在窗口,坦克画在画板上。
问题1:为什么要有坦克类然后让我的坦克类继承坦克类?
坦克类是父类,添加我的坦克和敌方坦克的所有共性(即 坦克共性),方便后续敌方坦克的添加(增加了扩展性)。
自己思考:
1.那么如何将 :“画板贴在窗口,坦克画在画板上。”的关系建立?
2.坦克类具有什么属性和方法?
3.我的坦克类具有什么属性和方法?
4.应该如何设计坦克?怎么才能真正地把坦克花在画板上?
==================================================================未完待续============================================================================================================
原文地址:https://www.cnblogs.com/vizdl/p/9102071.html