91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用Java實現植物大戰僵尸游戲

發布時間:2021-11-03 11:40:10 來源:億速云 閱讀:632 作者:iii 欄目:編程語言

這篇文章主要介紹“怎么用Java實現植物大戰僵尸游戲”,在日常操作中,相信很多人在怎么用Java實現植物大戰僵尸游戲問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么用Java實現植物大戰僵尸游戲”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

一、游戲設計—規則

植物大戰僵尸中有一個小游戲關卡,屏幕的正上方有一個滾輪機,會隨機生成植物,玩家可以選中植物后自由選擇草坪來進行安放。基于此游戲模式,本文將該關卡抽取出來,單獨做成了一個簡易版的植物大戰僵尸。屏幕左側會自動生成植物的卡牌,單擊選中后可以放置在草坪上。右側會自動生成僵尸,不同的僵尸移動速度不同,血量不同,還有的僵尸有隱藏獎勵,比如:全屏僵尸靜止、全屏僵尸死亡等。這里先說一下游戲暫停的功能應該怎么做。最簡單的一種暫停方式是鼠標移出屏幕,游戲暫停。所以這里需要引入一個鼠標監聽器事件。如下圖所示:

怎么用Java實現植物大戰僵尸游戲

當然,這只是一個簡單的通過監聽鼠標的位置來改變游戲狀態方法。還可以使用鍵盤監聽器,當按下某個鍵時游戲暫停,這樣的用戶體驗更好,但原理是一樣的。

2、游戲設計—對象

首先分析一下游戲中有哪些對象。各式各樣的植物,各式各樣的僵尸,各式各樣的子彈。那么這里就可以抽出三個父類,分別是植物、僵尸、子彈。在面向對象中,子類將繼承父類所有的屬性和方法。所以可以將三大類中,共有的屬性和方法抽到各自的父類中。比如僵尸父類,如圖所示:

怎么用Java實現植物大戰僵尸游戲

植物父類、子彈父類就同理可得了。上面說到子類共有的方法需要抽到父類中,那么部分子類共有的方法該如何處理呢?比如,豌豆射手、寒冰射手可以發射子彈,堅果墻就沒有射擊的這個行為。所以這里就需要用到接口。如圖所示:

怎么用Java實現植物大戰僵尸游戲

到此為止,游戲對象的屬性、方法基本都定義完了,至于圖片的顯示以及如何將圖片畫出來,只需要使用相應的API即可,這里就不做描述了。

3、游戲設計—功能

現在我們有了游戲的對象,該開始讓對象加入到游戲中來,接著讓他們動起來,最后還得讓他們打起來。首先,讓對象加入到游戲中來我是這么做的,這里還是以僵尸為例,如圖所示:

怎么用Java實現植物大戰僵尸游戲

首先植物入場時是在滾輪機上的,滾輪機上的移動就會涉及到追擊和停止的問題。追擊的方式當然是追前一個植物卡牌,但當第一個植物卡牌被選中放置到草地上后,那該如何追擊呢?將植物集合分為滾輪機上的集合和戰場上的集合,如圖所示:

怎么用Java實現植物大戰僵尸游戲

接下來該讓對象們都動起來了。之前說到在父類中的移動方法是抽象方法,在各自的子類中都進行重寫后,不同的對象移動方式就是各式各樣的了。如圖:

怎么用Java實現植物大戰僵尸游戲

看著代碼中對集合復雜的遍歷,不得不感概lambda表達式真是個好東西,如圖:

怎么用Java實現植物大戰僵尸游戲

如何讓對象們打起來呢?下面以僵尸攻擊植物為例:

怎么用Java實現植物大戰僵尸游戲

怎么用Java實現植物大戰僵尸游戲

結合圖片來看,黑框P代表植物,黑框Z代表植物,虛線是指兩者接觸的極限距離,當僵尸進入虛線內,就保證可以攻擊到植物。至此,游戲的基本功能基本實現了。Java是一門面向對象的語言,萬物皆對象,特征皆屬性,行為皆方法。肉眼能看到的僵尸、植物、草坪都是對象,對象的特性比如血量、移動速度都是屬性,對象的行為比如移動、攻擊、死亡都是方法。

4、游戲設計—背景音樂

bgm是一個游戲的靈魂之一。這里給游戲添加背景音樂,可以新建一條線程專門用來執行音樂的解析和播放,如圖:

怎么用Java實現植物大戰僵尸游戲

這里需要注意的是,Java中解析音樂的API只支持WAV格式的文件,文件格式的轉換大多數音樂播放器都可以做到。

到此,關于“怎么用Java實現植物大戰僵尸游戲”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

凤台县| 堆龙德庆县| 颍上县| 通化县| 环江| 化州市| 革吉县| 周口市| 平湖市| 修武县| 通州区| 绥中县| 七台河市| 马边| 开阳县| 临漳县| 浦城县| 固阳县| 衡阳市| 札达县| 呼和浩特市| 玉溪市| 吉林省| 宜阳县| 定陶县| 兴义市| 淮安市| 黑龙江省| 台江县| 扶风县| 深泽县| 镇赉县| 望谟县| 招远市| 农安县| 广饶县| 庄河市| 香格里拉县| 双辽市| 莫力| 年辖:市辖区|