用 Java 实现坦克大战,这个有点强了!
在Java開發中,坦克大戰項目和23種設計模式無疑是經典中的經典,就算是開發5年甚至是10年以上的開發者,都不敢說自己真真實實掌握了23種設計模式,希望大家能夠好好學習,并且能夠掌握這些細節性的東西。
坦克大戰項目
坦克大戰項目通過一個聯機對戰游戲的手把手,一行一行的開發過程,讓你精準的理解和運用JavaSE,DesignPatterns , TCP/IP, 多線程, NIO等基礎知識。真正理解項目的開發過程,并體會項目開發的難點和痛點。 請記住,只有做項目,才是對所學的真正檢驗。
坦克大戰項目目錄
new出一個窗口
設定標題欄內容
TankFrame從Frame繼承+顯示
認識paint方法重寫
學習graphics 類畫圖
學習repaint 方法
實現MyKeyListener對鍵盤作出響應
MyKeyListener從KeyAdapter繼承
取得具體按鍵信息
根據具體按鍵調整坦克位置持有對方引用
抽象出坦克類學習使用枚舉類型記錄鍵盤狀態
把監聽處理類MyKeyListener放到TankFrame內部
用匿名內部類處理窗口關閉
根據按鍵狀態改變坦克方向
根據坦克方向移動位置
能停能動
test包關于classloader的知識
將坦克換成圖片版
畫出一顆子彈讓子彈飛- -會兒
按下ctrl鍵主戰坦克打出一發炮彈
打出多發子彈
子彈從坦克中心位置打出
子彈消亡(飛出游戲區)
定義rectangle屬性不用每次都new
炮彈new出來自動加入容器死掉后自動去除
分離玩家和機器人對邊界進行不同的處理
用雙緩沖消除閃爍
加一堆敵人坦克
做碰撞檢測
顯示爆炸
加入聲音
讓敵人坦克更加智能
對坦克和子彈加入Group屬性,
不同的Group可以互相撞擊
測試Properties類的使用
建立PropertyMgr類
MV分開Model View分離
GameModel改成單例模式
對于碰撞的處理
Class. forName().newInstance()
抽象出游戲物體的父類
把GameModel中的各種不同物體的List合成為一個
List <GameObject>
完善責任鏈模式
加入墻
按鍵切換發射策略
實現暫停功能
實現存盤功能
使用Junit測試服務器loop
去掉敵人的坦克(機器控制的坦克)
處理接收到的消息
player新的構造方法
讓后來人能看到先加入者
加入坦克方向改變的消息
重構代碼
收到改變坦克方向消息時讓player的moving為true
發送主戰坦克停止的消息
發送主戰坦克開始移動的消息(方向沒變)
加入子彈和Player的撞擊邏輯
把主戰坦克也加入到List中
完成網絡版
坦克大戰項目——架構視頻
坦克大戰項目教程筆記
由于內容實在是太多了,小編就不多做介紹了,點贊此文后看文末免費獲取
23種設計模式
目錄?創建型?
Factory?Method(工廠方法)
Abstract?Factory(抽象工廠)
Builder(建造者)
Prototype(原型)
Singleton(單例)?結構型?
Adapter?Class/Object(適配器)
Bridge(橋接)?
Composite(組合)?
Decorator(裝飾)?
Facade(外觀)?
Flyweight(享元)
Proxy(代理)?行為型?
Interpreter(解釋器)?
Template?Method(模板方法)?
Chain?of?Responsibility(責任鏈)
Command(命令)
Iterator(迭代器)?
Mediator(中介者)
Memento(備忘錄)
Observer(觀察者)
State(狀態)
Strategy(策略)?
Visitor(訪問者)
下面的是23種設計模式的文檔和視頻
在Java開發中,坦克大戰項目和23種設計模式無疑是經典中的經典,就算是開發5年甚至是10年以上的開發者,都不敢說自己真真實實掌握了23種設計模式,希望大家能夠好好學習,并且能夠掌握這些細節性的東西。這些視頻、筆記免費分享,可以 點擊此處 憑截圖免費獲取
總結
以上是生活随笔為你收集整理的用 Java 实现坦克大战,这个有点强了!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 股票历史市盈率查询
- 下一篇: PE市盈率们之间的区别