Java坦克大戰遊戲開發
本文介紹:
本文分為多個部分,間斷性更新。主要涉及到 面向對象思想,Java GUI繪圖,多線程,IO,數據庫相關知識。
註:本文內容是整合了韓順平老師的java項目(代碼部分和韓順平老師有不同)然後加上自己的一些思考寫得,本文講的有些累述,但有提示,如若基礎紮實可以直接跳過,一部分面向僅僅學習了JavaSE的語法與面向對象的,一部分是面向已經掌握了GUI,多線程,IO,數據庫相關知識的。
本人認為該項目可以很好地加深對面向對象思想的理解,加強對Java各個基礎知識的鞏固。
基本要求:
觀看並且實踐本文,基本要求為:至少學習了一門面向對象語言,對面向對象的一些基礎(關鍵字和一些基本概念)扯得清楚
項目正文:
面向對象思想,我是並不打算講這部分內容的,所以我的第一部分的正文和代碼應該是講述GUI繪圖技術的!
GUI繪圖技術(已經明白的可以直接跳過進入下一部分或者溫習一下):
要制作一個坦克遊戲的第一步,應該就是制作一個窗口!而Java中制作窗口的方式很多,在這裏我們選取JFrame。
第一步:如何制作一個窗口(最簡易的制作窗口)
1 /** 2 * 目的:學習如何創建一個窗口 3 * @author HP 4 * 5 */ 6 public class Test01 extends JFrame{ 7 //主函數 8 public static void main (String[] args) { 9 new Test01(); 10 } 11 12 //構造方法初始化 13 public Test01 () { 14 this.setSize(400,300); 15 this.setVisible(true); 16} 17 }
代碼講解:
在這裏,我們采用了繼承JFrame類的方法來創建窗口,Test01繼承了JFrame類,那麽,也就是一個窗口類的子類。我們給它定義一個概念那就是,它應該也是一個窗口類哦。雖然名字和窗口類好像沒什麽關系。但事實上它繼承了JFrame的所有方法和屬性。
問題1 : 為何不直接在這個類中主函數中創建一個窗口對象進而創建一個窗口,而要采用繼承之後再創建的“笨方法”呢?
因為我們並不能修改JFrame類中的代碼,故而,我們也就不能再窗口類中增添我們各種各樣的特性來滿足我們對於窗口類的要求了,所以我們使用一個 我的窗口 MyFrame 的類(在這裏也就是Test01)來滿足我們自己的需求啦!
問題2.:為何不使用一個創建窗口的函數裝下現在在構造函數裏代碼,使得代碼更具有意義呢?
因為這是我們自己的窗口(MyFrame),也就是說我使用這一次就不需要使用了(定制窗口),並且,我們在創建自己的窗口的時候,是需要一創建對象就直接出現窗口的。因為我們自己的需求已經很明確了,並且這個類並不為其他人服務。
============================================================================================================================================================================
未完待續!
============================================================================================================================================================================
Java坦克大戰遊戲開發