飞机大战一Java课程设计
生活随笔
收集整理的這篇文章主要介紹了
飞机大战一Java课程设计
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一.人員分工
| 吳偉超(組長) | 游戲主界面設計與實現,鼠標類等的實現 |
| 馮仁樟 | 前期調查與功能設計,博客制作,部分代碼 |
二.項目簡介
玩家通過鼠標控制飛機發射子彈擊中敵機獲取積分,與敵機或者子彈相撞則飛機爆炸游戲結束,擊敗最終boss則游戲通關,游戲結束,玩法簡單有趣,鍛煉反應能力。
三.功能架構圖
?四.面向對象設計包圖、類圖
包圖
?類圖
?五.項目運行截圖
1.初始界面
?2.游戲運行界面
3.我方飛機爆炸,游戲結束
4.游戲通關
六.項目關鍵代碼
?1.鼠標事件
//游戲的點擊啟動事件 this.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {if (e.getButton() == 1 && state == 0){state = 1;repaint();}}}); //鼠標移動函數this.frame.addMouseMotionListener(new MouseAdapter() {@Overridepublic void mouseMoved(MouseEvent e) {PlaneObj.super.x = e.getX() - 11;PlaneObj.super.y = e.getY() - 16;}});2.游戲暫停
//鍵盤監聽的暫停功能,空格暫停this.addKeyListener(new KeyAdapter() {@Overridepublic void keyPressed(KeyEvent e) {if (e.getKeyCode() == 32){switch (state){case 1:state = 2;break;case 2:state = 1;break;default:}}}});3.碰撞檢測
public void paintSelf(Graphics gImage) {super.paintSelf(gImage);//我方飛機與敵方飛機的碰撞檢測if (this.frame.bossObj != null && this.getRec().intersects(this.frame.bossObj.getRec())){GameWin.state = 3;}}七.代碼靜態掃描
基本全部代碼都是符合規范的。
八.總結
在最初設計界面背景時發生閃屏,開始我們并不知道解決原因,后通過詢問同學采用雙緩沖技術消除屏幕閃爍;設計的敵機類型單一,道具類型也可以再進行增加,關卡只有一關,過于枯燥,并且程序的碰撞檢測機制采用遍歷的方法實現,過于粗略。原計劃能夠在單人模式基礎上增加聯網模式,但在基本完成單人模式后剩余的時間不足以去實現,因此希望在空余時間加以完善。
總結
以上是生活随笔為你收集整理的飞机大战一Java课程设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [js] 举例说明js中什么是尾调用优
- 下一篇: MLDN Java学习笔记(3)