javafx2_JavaFX 2 GameTutorial第1部分
javafx2
介紹我相信大多數(shù)軟件開發(fā)人員可能會(huì)在年輕人(年輕人)生活的某一時(shí)刻被迫創(chuàng)建游戲來(lái)幫助他們學(xué)習(xí)編程語(yǔ)言(我知道我曾經(jīng)做過(guò))。 以前,我的第一臺(tái)計(jì)算機(jī)實(shí)際上是Franklin Ace 1000 ,后來(lái)是Apple [] 。 在這些系統(tǒng)上開發(fā)游戲時(shí),這非常具有挑戰(zhàn)性。 對(duì)于初學(xué)者,您必須學(xué)習(xí)匯編語(yǔ)言(6502),實(shí)際上幾乎沒(méi)有工具來(lái)創(chuàng)建子畫面(圖形資產(chǎn))。 我認(rèn)為我最喜歡的一款游戲可能是第一款實(shí)時(shí)策略(RTS)游戲,是《 搶劫攻略》 ( Rescue Raiders ,1984)。
讓我們進(jìn)入2012年,自那時(shí)以來(lái),計(jì)算機(jī),圖形工具包,庫(kù)和游戲引擎已經(jīng)走了很長(zhǎng)一段路。 許多API都會(huì)提供許多可以屏蔽API用戶的管道,以便他們可以專注于使游戲變得有趣而令人興奮。 談到API JavaFX 2.x不僅是創(chuàng)建美觀應(yīng)用程序的出色UI工具包,而且還可以使游戲變得有趣。 使用JavaFX 2.x,您將能夠創(chuàng)建可以消磨時(shí)間并帶來(lái)數(shù)小時(shí)樂(lè)趣的游戲!
| 圖1太空飛船的SVG |
長(zhǎng)大后我一直對(duì)科幻電影如“星球大戰(zhàn)”和“ 星際迷航”著迷。 我一直想創(chuàng)建一個(gè)簡(jiǎn)單的頂視圖顯示游戲(2D),在其中我可以像經(jīng)典游戲《小行星》一樣控制飛船。 然而,隨著時(shí)間的流逝,一位朋友與我分享了《 星際爭(zhēng)霸 1》和《 育雛戰(zhàn)爭(zhēng)》的游戲,我感到非常驚訝。 我真的很喜歡今天的游戲,所以我想采用游戲的某些元素,例如使用鼠標(biāo)指針和按鈕(例如:Terran Battle Cruiser)導(dǎo)航部隊(duì)和部隊(duì)。
在此博客文章(第1部分)中,我將簡(jiǎn)要說(shuō)明使用簡(jiǎn)單形狀的簡(jiǎn)單宇宙飛船的游戲或?qū)Ш健?在第1部分(此博客條目)中沒(méi)有顯示代碼,而是一個(gè)簡(jiǎn)單的應(yīng)用程序來(lái)演示飛船在最終游戲中的行為。 隨著系列的進(jìn)行,您會(huì)注意到漸進(jìn)式的變化,例如酷炫的精靈,聲音等。請(qǐng)記住,最后一場(chǎng)比賽將是一艘飛船,避開敵艦并以聲音效果向后射擊。 該船將看起來(lái)像此博客條目開頭所描述的船(圖1)。
我想創(chuàng)建一系列博客條目( 六個(gè)部分 ),詳細(xì)介紹如何創(chuàng)建JavaFX 2.x游戲的教程。 。 以下是該系列的簡(jiǎn)要摘要:
第1部分-簡(jiǎn)介( 單擊此處以運(yùn)行演示 )
第2部分– 游戲循環(huán)
第3部分-輸入/(鼠標(biāo),鍵盤) 第4部分–精靈/碰撞 第五部分–聲音 第六部分–結(jié)論思想
需求與設(shè)計(jì)
- 使用基本形狀創(chuàng)建太空飛船的原型。
- 根據(jù)鼠標(biāo)右鍵單擊的屏幕位置,順時(shí)針或逆時(shí)針旋轉(zhuǎn)飛船。
- 按下主按鈕時(shí)發(fā)射射彈。
- 顯示鼠標(biāo)按下(x,y)屏幕坐標(biāo)
- 顯示角度以旋轉(zhuǎn)船頭(船前)
- 顯示飛船旋轉(zhuǎn)的方向(順時(shí)針或逆時(shí)針)
圖2中顯示的是一個(gè)使用簡(jiǎn)單形狀的簡(jiǎn)單原型,以幫助我們專注于數(shù)學(xué)。 一個(gè)好的原則是在投入大量時(shí)間來(lái)繪制圖形資產(chǎn)之前,先創(chuàng)建一個(gè)功能原型。
| 圖2太空飛船原型 |
- (MX,MY)–按下鼠標(biāo)(x,y)可以協(xié)調(diào)JavaFX Scene上的空間。
- (vx,vy)–相對(duì)于船中心的直角坐標(biāo)轉(zhuǎn)換為結(jié)束角或鼠標(biāo)按下(x,y)坐標(biāo)。
- (ux,uy)–起始角或上次鼠標(biāo)按下(x,y)坐標(biāo)轉(zhuǎn)換為相對(duì)于船中心的笛卡爾坐標(biāo)。
- U形角:船首旋轉(zhuǎn)角度。 在笛卡爾坐標(biāo)系(1,0)中,鼻子指向西或零度。 隨著船舶逆時(shí)針旋轉(zhuǎn),角度會(huì)增加。 當(dāng)沿順時(shí)針?lè)较蛞苿?dòng)時(shí),旋轉(zhuǎn)角度將為負(fù)數(shù)。
- V的角度:船頭旋轉(zhuǎn)應(yīng)停止的角度。 在笛卡爾坐標(biāo)系(1,0)中,鼻子指向東或零度。 隨著船舶逆時(shí)針旋轉(zhuǎn),角度會(huì)增加。 當(dāng)沿順時(shí)針?lè)较蛞苿?dòng)時(shí),旋轉(zhuǎn)角度將為負(fù)數(shù)。
- 方向:旋轉(zhuǎn)船頭以順時(shí)針或逆時(shí)針旋轉(zhuǎn)船。 當(dāng)單擊鼠標(biāo)以在小于180度的角度旋轉(zhuǎn)船舶時(shí),船舶將轉(zhuǎn)向鼠標(biāo)單擊,而不是轉(zhuǎn)向大于180度的另一種方式(長(zhǎng)距離)。
演示版
要求:
- Java 7或更高版本
- JavaFX 2.0或更高版本
- Windows XP或更高版本(應(yīng)該很快可用于Linux / MacOS)
飛船導(dǎo)航和武器系統(tǒng)的簡(jiǎn)單原型。
說(shuō)明:
- 右鍵單擊(在Windows上)鼠標(biāo)以飛船。
- 主武器(在Windows鼠標(biāo)上單擊鼠標(biāo)左鍵)以射擊武器。
點(diǎn)擊此處運(yùn)行演示
參考資料
富蘭克林Ace –老式計(jì)算機(jī):http://www.vintage-computer.com/franklin.shtml
Apple] [ –老式計(jì)算機(jī):http://en.wikipedia.org/wiki/Apple_II
救援攻略 –維基百科:http://en.wikipedia.org/wiki/Rescue_Raiders
星球大戰(zhàn) –電影數(shù)據(jù)庫(kù):http://www.imdb.com/title/tt0076759/
星際迷航 –電影數(shù)據(jù)庫(kù):http://www.imdb.com/title/tt0796366/
星際飛船 –維基百科:http://en.wikipedia.org/wiki/Star_Craft
星際飛船母巢之戰(zhàn) –維基百科:http://en.wikipedia.org/wiki/StarCraft:_Brood_War
http://en.wikipedia.org/wiki/Rescue_Raiders
參考:來(lái)自我們的JCG合作伙伴 Carl Dea的JavaFX 2 GameTutorial第1部分 ,位于Carl's FX博客上。
翻譯自: https://www.javacodegeeks.com/2012/04/javafx-2-gametutorial-part-1.html
javafx2
總結(jié)
以上是生活随笔為你收集整理的javafx2_JavaFX 2 GameTutorial第1部分的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 京东金融理财靠谱吗?
- 下一篇: 在Java 8中使用不带静态导入的Moc