Java實例-坦克大戰 一.樣例圖片 二.類圖結構 坦克大戰中的所有類 類的關係圖 我的坦克類 三.說明 1、每一個新的獨立運行的東西就是一個線程,像我方坦克,像敵方坦克,像所有的子彈 2、每一個線程要實現run方法,也要start啟動線程 3、無論坦克,子彈,都有生命,都有坐標(靜),都有速度,都 ...
Java實例-坦克大戰
一.樣例圖片
二.類圖結構
坦克大戰中的所有類
類的關係圖
我的坦克類
三.說明
1、每一個新的獨立運行的東西就是一個線程,像我方坦克,像敵方坦克,像所有的子彈
2、每一個線程要實現run方法,也要start啟動線程
3、無論坦克,子彈,都有生命,都有坐標(靜),都有速度,都有運動的方向(動)
4、坦克和子彈的運動都是靠修改坐標後的刷新坐標來實現的
5、坦克的子彈的顯現都是通過JPanel裡面的paint出來的,不斷的repaint就能顯現所有的運動
6、子彈的連續運動是通過run方法裡面的死迴圈實現的,也就是不斷的變換坐標
7、鍵盤動作是通過鍵盤監聽來的
8、多個線程是被集合類存儲起來的,像子彈集合,像敵方坦克集合
9、自己坦克的動是因為鍵盤事件裡面的repaint,敵方坦克的動卻是因為Tank1界面裡面調用MyPanel線程的start函數,run裡面有repaint
10、運行repaint的實質是再次調用paint函數,所以我們需要看看paint裡面有什麼
11、paint函數裡面其實就是什麼有生命我就畫什麼就好,有多少個我畫多少個,例如我方坦克,敵方坦克,我方子彈,敵方子彈
12、畫敵方子彈需要雙重迴圈,那還不如和敵方坦克畫在一起
13、子彈發射了還要繪製才可能出來
四.代碼
代碼在百度盤上:http://pan.baidu.com/s/1hrYFjxU
(1)主界面:TankWarUI類
(2)坦克作戰區:MyPanel類
(3)子彈:Bullet類
(4)坦克類:Tank類
(5)我的坦克類:MyTank類
(6)敵人坦克類:EnemyTank類