freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于java的坦克網(wǎng)戰(zhàn)游戲的設(shè)計(jì)和實(shí)現(xiàn)(編輯修改稿)

2024-07-15 15:43 本頁面
 

【文章內(nèi)容簡介】 戲中客戶端和服務(wù)器的聯(lián)機(jī)功能的實(shí)現(xiàn),它的通信過程是基于TCP/IP協(xié)議中傳輸層接口socket實(shí)現(xiàn)。通過通信模塊玩家可以進(jìn)行信息傳遞以便協(xié)同作戰(zhàn),為本游戲添加樂趣。 坦克模塊坦克模塊部分主要由玩家坦克和敵人坦克組成,敵方坦克隨機(jī)出現(xiàn),并隨機(jī)移動,玩家通過鍵盤操作來控制坦克的移動和對敵方坦克進(jìn)行攻擊。玩家坦克可以對敵方閃爍坦克進(jìn)行攻擊,并得到額外輔助道具,獲得道具后玩家坦克具備相應(yīng)功能。敵方坦克由游戲窗口上方按照左中右依次出現(xiàn),敵方在移動過程中隨機(jī)發(fā)出子彈,如遇見障礙則隨機(jī)改變運(yùn)動方向。玩家在第一關(guān)卡時,最多同時出現(xiàn)三輛敵方坦克,隨著游戲的進(jìn)行敵方坦克數(shù)量隨之增加且敵方坦克運(yùn)動速度加快,和經(jīng)典單機(jī)坦克游戲十分相似,將玩家?guī)胪昊貞洝?子彈模塊在該模塊中,初始玩家一次只能發(fā)射一顆子彈,且只對敵方坦克和普通磚墻有效,當(dāng)子彈消失后才能接著發(fā)射。子彈擊毀時出現(xiàn)爆炸效果,玩家子彈和敵方坦克發(fā)出的子彈可以撞毀,敵方坦克向四個方向隨機(jī)移動并發(fā)射子彈。游戲工程中玩家獲得相應(yīng)輔助道具后,子彈速度加快且可以進(jìn)行連續(xù)射擊。 墻模塊墻模塊是由四個類共同組成,包括磚墻、鋼墻、草叢和河流。通過這四個類的組合,編輯成游戲地圖。游戲地圖中,玩家基地周圍是由磚墻包圍,在墻模塊中,磚墻是最基本的組成,玩家或敵方坦克都能將其摧毀,鋼墻只有玩家獲得特殊輔助后才能摧毀,玩家和敵方發(fā)出的子彈都能穿越草叢和河流。 關(guān)卡模塊為了增加游戲的趣味性,游戲中設(shè)計(jì)了九個循環(huán)關(guān)卡。在游戲過程中,玩家雙方各有3條生命,當(dāng)玩家雙方均把生命耗盡時,通關(guān)失敗,只有雙方選擇重玩時才重新開始游戲。在關(guān)卡進(jìn)行時,任一玩家可以選擇暫停游戲,在每個關(guān)卡中設(shè)置了玩家基地,當(dāng)玩家基地被毀,則通關(guān)失敗。每個關(guān)卡設(shè)計(jì)20輛敵方坦克,當(dāng)敵方坦克均被消滅,游戲自動進(jìn)入下一關(guān)卡。:載入游戲開始失敗重玩結(jié)束進(jìn)入下一關(guān)是否否是 玩家游戲流程圖5 程序?qū)崿F(xiàn) 游戲窗口界面設(shè)計(jì)游戲窗口使用Frame類,F(xiàn)rame類是Container類的間接子類。當(dāng)需要一個窗口時,可使用Frame或其子類創(chuàng)建一個對象。窗口也是一個容器,可以向窗口添加組件。該游戲界面包括文本輸入框和按鈕,因?yàn)榉?wù)器端和客戶端窗口相似,以下提供客服端游戲窗口設(shè)計(jì)代碼:public class ServerView extends JFrame{ public drawingPanel mainPanel。 public JButton createServer, exit, pauseAndResume, help, hiddenButton。 public JTextField messageField。 public JButton sendMessage。 public ServerControler controler。 public ServerModel model。 public ServerView(){ super(基于Java的坦克網(wǎng)戰(zhàn)游戲)。 try { (())。 } catch (Exception e) { } getContentPane().setLayout(null)。 mainPanel = new drawingPanel()。 (null)。 (0, 22, 679, 605)。 (new Color(128, 64, 128))。 setDefaultCloseOperation()。 setBounds(150, 130, 640, 590)。 setVisible(true)。 setResizable( false )。 model = new ServerModel(this)。 controler = new ServerControler(this, model)。 /* * 添加按鍵和文本框并實(shí)現(xiàn)相應(yīng)功能 */messageField = new JTextField()。 (0,519, 560,22)。 (false)。 sendMessage = new JButton(發(fā)送)。 (570,518, 62,24)。 (false)。 (messageField)。 (sendMessage)。 getContentPane().add(mainPanel)。 (true)。 createServer = new JButton(建立主機(jī))。 (0, 0,120,22)。 getContentPane().add(createServer)。 (false)。 pauseAndResume = new JButton(暫停/繼續(xù))。 (120, 0,120,22)。 getContentPane().add(pauseAndResume)。 (false)。 help = new JButton(幫助)。 (240, 0,120,22)。 getContentPane().add(help)。 (false)。 exit = new JButton(退出)。 (360, 0,120,22)。 getContentPane().add(exit)。 (false)。 setDefaultCloseOperation()。 setBounds(150, 130, 640, 590)。 setVisible(true)。 setResizable( false )。 model = new ServerModel(this)。 controler = new ServerControler(this, model)。 } public static void main(String[] args){ new ServerView()。 }}游戲運(yùn)行界面使用JPanel創(chuàng)建一個面板,再向這個面板添加組件。主要分為游戲界面和玩家信息界面,:游戲按鍵和文本框區(qū)域玩家得分玩家生命游戲界面游戲進(jìn)度聊天信息編寫區(qū)域 游戲運(yùn)行界面圖游戲界面顯示游戲?qū)崟r畫面,玩家信息界面主要顯示玩家生命值,玩家得分情況,關(guān)卡進(jìn)讀,和剩余敵方坦克數(shù)量。部分代碼如下:public class drawingPanel extends JPanel{ public Image offScreenImage。 public String[] messageQueue。 public Actor[] drawingList。 public boolean gameStarted。 public int green, red, blue。 public int P1Life, P2Life, P1Score, P2Score, EnemyLeft, LevelIndex。 public Image P1Image, P2Image。 游戲控制這款游戲設(shè)計(jì)過程中,主要使用鍵盤進(jìn)行操作,為了讓玩家對坦克進(jìn)行有效操作,游戲程序窗口添加KeyListener(鍵盤監(jiān)聽器)。事件源描述事件對象中事件的性質(zhì)。玩家的每個操作將產(chǎn)生一個事件源對應(yīng)一個或多個事件監(jiān)聽器,當(dāng)發(fā)生事件就將調(diào)用相關(guān)事件監(jiān)聽器。此后事件源便將該事件對象發(fā)送給相應(yīng)監(jiān)聽器接口類的方法,監(jiān)聽器接口則會接收到相應(yīng)
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1