剛剛做完坦克大戰的遊戲,不能說做完,功能還很簡單,還有一些bug。花了兩個下午,乙個晚上,因為時間很緊張,(主要怪自己,在別人工作的時候,我在去杭州了
寫乙個遊戲,首先要定義的自己的規則,搞清楚自己到底要實現的東西有哪些。然後,一點一點理清自己的思路。搞清楚,為了達到目的,我要做哪些事情,先後順序是什麼。
一開始突然要寫坦克,作者也是一頭蒙。後來,靜下心來,慢慢分析,先學會玩坦克大戰這個遊戲,搞清楚了遊戲規則,然後開始模仿。要寫這個遊戲,首先,要有乙個jframe。要有自己的坦克和敵方坦克。坦克要會發射子彈。坦克要能夠在jframe上運動。要判斷輸贏,那麼還要自己定義輸贏標準。 這些是主幹,其他的可以一點一點的加。
一:介面,800*700的jframe。
背景是我擷取的乙個遊戲的,然後一小塊,一小塊拼起來的,足足拼了400多塊(因為這個背景很有戰場的感覺)。
然後,就是設計地圖了。建立乙個map檔案,用數字來表示地圖上的事物。然後,讀取檔案,用到了前幾天的檔案的讀取,將字串轉換成陣列元素,用陣列來儲存。遍歷陣列,陣列不同的元素,則繪製相對應的事物。
//根據陣列,畫出地圖
public void createmap(int array,graphics g)
if (dir == e.vk_left)
if (dir == e.vk_up)
if (dir == e.vk_down)
}
三:敵方坦克
其實,敵方坦克類裡有許多和己方坦克相同的方法,比如,判斷是否被打中,是否碰到障礙物。敵方坦克不同的是,被打中後,消失,直到全部被打中消失,那麼,遊戲結束,己方勝利。敵方坦克的運動方向和位置是隨機的。前,後,左,右,四個方向隨機選擇。
/**
* 隨機選擇前前進的方向
*/public void initdirection()
if (dir == 1)
if (dir == 2)
if (dir == 3)
}
四:子彈類
己方子彈,和敵方子彈,建立方法時相同的,裡面實現的方法也有很多相同的地方,其實可以合併寫在乙個類裡。但,一開始的時候,我為了理清自己的思路,把他們一一的分開了。
子彈的運動方向和位置的定義,是與坦克運動方向,位置相關的,因此可以用坦克的座標來表示子彈的座標,坦克的方向就是子彈的方向。子彈類裡,會有一些方法,比如,子彈擊中了牆,那麼牆就要消失;子彈擊中對方坦克,坦克消失,等等。
五:實現**效果
**的實現其實就是連續的繪製。將儲存在陣列裡,然後遍歷繪製。**的產生是在子彈打中坦克的情況的產生的,因此,此時的子彈是setlive(false)的,呼叫**方法即可。
六:config類
因為要繪製很多,為了方便,可以將要用到的素材放到config類裡。
以上只是我暫時的結果。還有很多要完善的地方,比如,敵方坦克不可以重合,由於敵方坦克運動方向是隨機的,坦克可能會原地打轉的問題,等等,很多。我會繼續完善的。
紅心大戰安卓單機版 紅心大戰單機版
遊戲特色 每天都有乙個特別的每日挑戰在等待著你!完成挑戰,贏得金皇冠,每月獲得乙個獨特的獎盃。無論你是想放鬆還是磨礪大腦,我們都提供了數千種各不相同的牌局,牌局總數超過百萬。如果你陷入僵局,提示 撤銷和洗牌都能幫助你取得勝利。各種各樣的背景 卡牌正面和背面讓你自定義喜歡的遊戲外觀。全民錦標賽,比拼手...
C 遊戲《坦克大戰》 坦克
這裡的各種型別,使用struct而不是enum,避免後面強制轉換。子彈資訊 public struct t bulletinfo 坦克型別 public struct t type 坦克行動方向 public struct t dir 公共引數 public struct t commpar 設計框...
單機版hadoop部署
單機版hadoop部署 解除安裝自帶的jdk,安裝自己的jdk 1.tar zxf tmp hadoop 2.6.5.tar.gz c usr local 解壓到 usr local中 2.cd usr local 3.mv hadoop 2.6.0 hadoop 將資料夾名改為hadoop 4.c...