JavaFX 2 GameTutorial第1部分

介紹

我相信大多數軟件開發人員可能會在年輕人(年輕人)一生中的某一時刻被迫創建游戲來幫助他們學習編程語言(我知道我確實做到了)。 以前,我的第一臺計算機實際上是Franklin Ace 1000 ,后來是Apple [] 。 在這些系統上開發游戲時,這非常具有挑戰性。 對于初學者,您必須學習匯編語言(6502),實際上幾乎沒有工具來創建精靈(圖形資產)。 我認為我最喜歡的一款游戲可能是第一款實時策略(RTS)游戲,是Rescue Raiders (1984)。

讓我們向前邁進2012年,此后,計算機,圖形工具包,庫和游戲引擎已經走了很長一段路。 許多API都會提供很多屏蔽API用戶的管道,以便他們可以專注于使游戲變得有趣和刺激。 談到API JavaFX 2.x不僅是創建美觀應用程序的出色UI工具包,而且還可以使游戲變得有趣。 使用JavaFX 2.x,您將能夠創建可以消磨時間并帶來數小時樂趣的游戲!

圖1太空飛船的SVG

長大后我總是對科幻電影如“星球大戰”和“ 星際迷航”著迷。 我一直想創建一個簡單的頂視圖顯示游戲(2D),在其中我可以像經典游戲《小行星》一樣控制飛船。 但是,隨著時間的流逝,一位朋友與我分享了《 星際爭霸 1》和《 母巢之戰》,我感到非常驚訝。 我真的很喜歡今天的比賽,所以我想采用游戲的某些元素,例如使用鼠標指針和按鈕(例如:Terran Battle Cruiser)導航部隊和部隊。

在此博客文章(第1部分)中,我將簡要說明使用簡單形狀的簡單太空船的游戲或導航。 在第1部分(此博客條目)中沒有顯示代碼,而是一個簡單的應用程序來演示飛船在最終游戲中的行為。 隨著系列的進行,您會注意到漸進式的變化,例如酷炫的精靈,聲音等。記住,最后一場比賽將是一艘宇宙飛船,避開敵艦并以聲音效果向后射擊。 該船將看起來像此博客條目開頭所描述的船(圖1)。

我想創建一系列博客條目( 六個部分 ),詳細介紹如何創建JavaFX 2.x游戲的教程。 。 以下是該系列的簡要摘要:

第1部分–簡介( 單擊此處以運行演示 )
第2部分– 游戲循環
第3部分-輸入/(鼠標,鍵盤) 第4部分–精靈/碰撞 第五部分–聲音 第六部分–結論性思想

需求與設計

  • 使用基本形狀創建太空飛船的原型。
  • 根據鼠標右鍵單擊的屏幕位置,順時針或逆時針旋轉飛船。
  • 按下主按鈕時發射射彈。
  • 顯示鼠標按下(x,y)屏幕坐標
  • 顯示角度以旋轉船頭(船前)
  • 顯示飛船旋轉的方向(順時針或逆時針)

圖2中顯示的是一個使用簡單形狀的簡單原型,以幫助我們專注于數學。 一個好的原則是在投入大量時間來繪制圖形資產之前,先創建一個功能原型。

圖2太空飛船原型
  • (MX,MY)–鼠標按下(x,y)可以協調JavaFX Scene上的空間。
  • (vx,vy)–相對于船心的結束角或鼠標按下(x,y)坐標轉換為笛卡爾坐標。
  • (ux,uy)–起始角或上次鼠標按下(x,y)坐標轉換為相對于船中心的笛卡爾坐標。
  • U形角:船首旋轉角度。 在笛卡爾坐標系(1,0)中,鼻子指向西或零度。 隨著船舶逆時針旋轉,角度會增加。 當沿順時針方向移動時,旋轉角度將為負數。
  • V角:船頭應在其停止位置旋轉的角度。 在笛卡爾坐標系(1,0)中,鼻子指向東或零度。 隨著船舶逆時針旋轉,角度會增加。 當沿順時針方向移動時,旋轉角度將為負數。
  • 方向:旋轉船頭以順時針或逆時針旋轉船。 當單擊鼠標以在小于180度的角度旋轉船舶時,船舶將轉向鼠標單擊,而不是轉向大于180度的另一種方式(長距離)。

演示版

要求:

  • Java 7或更高版本
  • JavaFX 2.0或更高版本
  • Windows XP或更高版本(應該很快可用于Linux / MacOS)

飛船導航和武器系統的簡單原型。

說明:

  • 右鍵單擊(在Windows上)鼠標以飛船。
  • 主武器(在Windows鼠標上單擊鼠標左鍵)以射擊武器。

單擊此處運行演示

參考文獻

富蘭克林Ace –老式計算機:http://www.vintage-computer.com/franklin.shtml

Apple] [ –老式計算機:http://en.wikipedia.org/wiki/Apple_II

救援攻略 –維基百科:http://en.wikipedia.org/wiki/Rescue_Raiders

星球大戰 –電影數據庫:http://www.imdb.com/title/tt0076759/

星際迷航 –電影數據庫:http://www.imdb.com/title/tt0796366/

星際飛船 –維基百科:http://en.wikipedia.org/wiki/Star_Craft

星際飛船母巢之戰 –維基百科:http://en.wikipedia.org/wiki/StarCraft:_Brood_War

http://en.wikipedia.org/wiki/Rescue_Raiders

參考:來自我們的JCG合作伙伴 Carl Dea的JavaFX 2 GameTutorial第1部分 ,位于Carl's FX博客上。


翻譯自: https://www.javacodegeeks.com/2012/04/javafx-2-gametutorial-part-1.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/372766.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/372766.shtml
英文地址,請注明出處:http://en.pswp.cn/news/372766.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

虛擬現實-VR-UE4-認識UE4

VR的火熱,讓每個人都想參與一下, 公司在展會上面搞了一個VR的Demo,關注度超出預期,使得公司高層決定來個VR項目 所以 關于UE4 百度百科地址:http://baike.baidu.com/link?urlmEmbwOcqEuqtkfdu9lNdxVtWAkv0Q6UHZ4VgIHr…

java concurrent 例子_[Java Concurrent] 并發訪問共享資源的簡單案例

EvenGenerator 是一個偶數生成器,每調用一個 next() 就會加 2 并返回疊加后結果。在本案例中,充當被共享的資源。EvenChecker 實現了 Runnable 接口,可以啟動新的線程執行 run() 任務,用于檢測所指向的偶數生成器是否每次都返回偶…

OSGI實戰第一章

第一章 解開OSGI的面紗 OSGI是什么?是Java平臺的一個模塊化層。模塊化:軟件應用程序的代碼被分割為表示獨立內容的邏輯單元,可簡化開發,可通過強化邏輯模塊的界限來提高可維護性。Java模塊化的不足a) Java使用訪問…

輕松完成Birt報告

這是使用Birt插件在Eclipse中構建報告的完整指南。 Birt或Business Intelligence and Reporting工具是一種無需編寫太多Java代碼即可生成報告的工具。 如果您使用的是ireport,那么您知道我在說什么:)(晶體報告..毫無意義&#xff…

MySQL 的 RowNum 實現

MySQL 下面沒有RowNum,排序后序號卻無法得到,比較麻煩! SELECT rownum:rownum1 rownum, CollectSn From(SELECT rownum:0,bbgmain.* FROM qbdb.bbgmain WHERE collectsn! ORDER BY collectsn limit 10) t轉載于:https://www.cnblogs.com/hym-…

java jdbc事務管理_hibernate事務管理 (jdbc jta)

評論# re: hibernate事務管理 (jdbc jta)2007-07-29 10:18pigJTA事務的開始Transaction tx session.beginTransaction();應該不是這樣吧,應該是從容器中獲得。 回復 更多評論# re: hibernate事務管理 (jdbc jta)2007-07-29 12:35slxpig建議看看hibernate referen…

@Resource VS @Autowired

Resource 和 Autowired 均是用于bean注入的注解,都可以寫在字段和setter方法上,如果都寫在字段上,就無需寫setter方法。 Autowired 由Spring的org.springframework.beans.factory.annotation.Autowired提供 默認byType方式注入,并且對象不能為…

用于Spring應用程序的Gradle原型

我發布了Gradle原型,可用于基于Springframework創建Java / Groovy應用程序。 當然,它不是一個真正的原型,因為這樣的創作是不可能的 。不過,你可以創建,編輯和部署應用服務器很少的步驟。 對于可部署的軟件項目而言&am…

java tm無響應_Java(TM) Platform SE binary 未響應 是怎么個情況?

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓988098 [Thread-10] INFO sound.oo0O - Creating streaming player for music with id [faction_pirate_encounter_02_hostile.ogg]988099 [Thread-10] INFO sound.OooO - Playing music with id [faction_pirate_encounter_02_hos…

ROS and PCL install

ROS hydro安裝指南: http://wiki.ros.org/cn/hydro/Installation/Ubuntu (加ppa源后直接安裝) Linux OpenCV安裝指南:http://blog.sciencenet.cn/blog-571755-694742.html (從源代碼編譯) PCL:…

揭開Python科學計算的面紗

春牛春杖。無限春風來海上。便與春工。染得桃紅似肉紅。 春幡春勝。一陣春風吹酒醒。不似天涯。卷起楊花似雪花。 標準的Python中用列表保存一組值,可以當做數組使用,但是由于其值類型任意,所以列表中保存的是指針,這樣的話保存一…

FXML:使用BuilderFactory的自定義組件

當您想使用FXML時,您將需要能夠添加自己的組件。 這很容易,您只需要添加一個import語句。 FXML文件中以大寫字母開頭的元素將被解釋為實例,如果它們是Java Bean,則最重要:如果它們具有無參數的標準構造函數&#xff0c…

Excel 一鍵上傳到數據庫

<a class"edit" id"batchImport"> 批量導入 </a> js代碼彈窗&#xff1a; $("#batchImport").click(function(){ //彈窗彈窗下列內容 var html<form id"execlForm" method"post" enctype&quo…

SQL——實例記錄(對查詢結果排行號)

select 訂單編號, DENSE_RANK() over(order by 訂單編號) from test 排序結果&#xff1a; 55678-0-1 1 55678-0-1 1 33454-0-1 2 33454-0-1 2 33454-0-1 2 這種是按照訂單不同的順序依次往后排 當然也可以在 over后面加上你想要的起始號 例&#xff1a;DE…

TeamCity構建依賴項

介紹 構建依存關系的主題既不重要也不是次要的。 各種構建工具從不同的角度處理此主題&#xff0c;從而提供各種解決方案&#xff0c;每種解決方案都有其優點和缺點。 熟悉發行版和快照依賴項的Maven和Gradle用戶可能不了解TeamCity快照依賴項&#xff0c;或者認為他們與Maven…

復選框操作checked選中為true,反之為False,也可以賦值為true,false

轉載于:https://www.cnblogs.com/shiluoliming/p/6518236.html

java 個稅計算_【JAVA300例】10、計算個人所得稅

邏輯是這樣的。每個等級計算的系數都不一樣。分別有多個檔位。要判斷處于什么檔位然后用特殊的公式去計算。原版是從小到大判斷&#xff0c;每次寫條件很煩。這里換成從大到小。節省敲代碼時間。import java.util.Scanner;public class Test010{public static void main(String…

Java是否越來越接受靜態導入?

曾經有一段時間&#xff0c;至少在禮貌的社會中&#xff0c;人們普遍認為使用“ 不是 ”一詞是不可接受的。 確實&#xff0c;那時&#xff08;也許直到今天&#xff09;&#xff0c;許多人確實&#xff08;也確實&#xff09;認為不是一個真實的詞。 盡管這個詞并沒有 引起爭議…

Stream 工具方法

inputstream 轉 string 1、使用字符流 InputStream is TestZhimaCustomerCertificationInitialize.class.getClassLoader().getResourceAsStream("config/rsa_private_key_pkcs8.pem"); InputStreamReader isr new InputStreamReader(is); BufferedReader br new…

從0開始學習 GitHub 系列匯總筆記

本文學習自Stromzhang, 原文地址請移步&#xff1a;從0開始學習 GitHub 系列匯總 我的筆記&#xff1a; 0x00 從0開始學習GitHub 系列之[初識GitHub] GitHub 影響力 a.全球頂級科技公司紛紛加入 GitHub &#xff0c;并貢獻他們自己的項目代碼 Google: https://github.com/goog…