Java 2D游戲編程入門

Java 2D游戲編程入門
定價:474
NT $ 412
 

內容簡介

學習2D游戲開發基礎,是快速積累游戲開發經驗的關鍵。理解了2D環境的要素,將能夠為游戲開發打下堅實的基礎。

本書講解使用Java進行2D游戲開發的基礎知識和基本技能。本書共18章,分為基礎知識、提高技能和完整游戲3個部分,詳細介紹應用編程、全屏游戲、輸入處理、矩陣變換、基礎物理、相交測試、碰撞檢測等知識點和技能,最后采用介紹的所有概念,從頭到尾開發了一款完整的游戲。

本書適合游戲開發的初學者閱讀,尤其適合想要學習2D游戲編程基礎的任何人。本書假設讀者理解核心編程概念、面向對象軟件以及Java編程語言,但不需要讀者具備任何游戲編程的知識。

Timothy M. Wright是一名軟件工程師,正在開發下一個美妙的獨立游戲。最近10年,他都在公司的研發部門工作。此前,他是一位專業的音樂家。他獲得了軟件工程的學士學位,並且從事了很多年的研究和開發工作。他編寫Java代碼有10年以上的時間,並且之前在gamedev.net上發布了教程。在不開發游戲的時候,他喜歡鋼琴爵士樂、打撲克、烹飪和釀造啤酒。
 

目錄

第一部分 基礎知識
第1章 Hello World
1.1 使用FrameRate類
1.2 創建Hello World應用程序
1.3 使用主動渲染
1.4 創建定制的渲染線程
1.5 創建一個主動渲染的窗口
1.6 修改顯示模式
1.7 全屏顯示模式中的主動渲染
1.8 資源和延伸閱讀
第2章
2.1 處理鍵盤輸入
2.2 鍵盤改進
2.3 處理鼠標輸入
2.4 相對鼠標移動
2.5 資源和延伸閱讀
第3章 變換
3.1 使用Vector2f類
3.2 使用極坐標
3.3 理解點和向量
3.4 使用矩陣變換
3.5 行主序矩陣和列主序矩陣
3.6 理解Matrix3x3f類
3.7 仿射變換
3.8 資料和延伸閱讀
第4章 時間和空間
4.1 計算時間增量
4.2 屏幕映射
4.3 調整視口高寬比
4.4 大炮實例
4.6 資料和延伸閱讀
第5章 簡單游戲框架
5.1 屏幕到世界的轉換
5.2 理解簡單框架
5.3 使用簡單框架模板
5.4 資源和延伸閱讀
第6章 Vector2f更新
6.1 inv( )
6.2 add( )
6.3 sub( )
6.4 mul( )
6.5 div( )
6.6 len( )和lenSqr( )
6.7 norm( )
6.8 perp( )
6.9 dot( )
6.10 angle( )
6.11 polar( )
6.12 toString( )
6.12 資源和延伸閱讀
第7章 相交測試
7.1 多邊形中的點的測試
7.1.1 多邊形特例中的點
7.1.2 多邊形示例中的點
7.2 使用軸對齊邊界框進行相交測試
7.3 使用圓形測試相交圓和AABB的重合
7.4 使用分隔軸方法
7.5 使用線段-線段的重疊方法
7.6 使用矩形-矩形的重疊方法
7.7 優化測試
7.8 資源和延伸閱讀
第8章 游戲原型
8.1 創建一個多邊形包裝類
8.2 創建一個原型小行星
8.3 創建一個原型編輯器
8.4 用原型小行星工廠生產小行星
8.5 原型Bullet類
8.6 原型Ship類
8.7 編寫原型游戲

第2部分 提高技能
第9章 文件和資源
9.1 理解Java如何處理文件和目錄
9.2 理解輸入/輸出流
9.3 創建Resources.jar文件進行測試
9.4 將資源放到類路徑上
9.5 制作資源加載工具包
9.6 利用Java屬性
9.7 XML文件概覽
9.8 資源和延伸閱讀
第10章 圖像
10.1 學習Java中的顏色
10.2 了解不同的圖像類型
10.3 執行顏色插值
10.4 使用VolatileImage提高速度
10.5 創建透明圖像
10.6 使用alpha合成的規則
10.7 繪制精靈
10.8 探索不同的縮放算法
10.9 資源與延伸閱讀
第11章 文本
11.1 理解Java字體
11.2 制作繪制字符串工具
11.3 使用文本度量進行布局
11.4 支持線程安全的鍵盤輸入
11.5 資源和延伸閱讀
第12章 線程
12.1 使用線程實現Callable任務
12.2 使用線程加載文件
12.3 使用FakeHardware類測試
12.4 使用等待/通知方法
12.5 在游戲循環中使用線程
12.6 使用狀態機
12.7 OneShotEvent類
12.8 LoopEvent類
12.9 RestartEvent類
12.10 多線程事件示例
12.11 資源和延伸閱讀
第13章 聲音
13.1 操作聲音文件
13.2 使用聲音庫的問題
13.3 開發阻塞音頻類
13.4 用阻塞的Clip類
13.5 使用AudioDataLine類
13.6 BlockingDataLine類
13.7 創建一個SoundEvent類
13.8 使用OneShotEvent類
13.9 使用LoopEvent類
13.10 使用RestartEvent類
13.11 添加聲音控件
13.1 資源和延伸閱讀
第14章 用ANT進行開發
14.1 安裝ANT軟件
14.2 理解構建腳本的格式
14.3 學習常見ANT任務
14.4 構建一個可擴展的構建腳本
14.5 資源和延伸閱讀
第15章 碰撞檢測
15.1 帶碰撞檢測的彈球
15.2 使用直線參數方程
15.3 查找直線-矩形相交
15.4 查找圓-直線相交
15.5 查找直線-直線相交
15.6 計算一個反射向量
15.7 在一個多邊形中彈回一個點
15.8 資源和延伸閱讀
第16章 工具
16.1 創建一個游戲框架
16.2 更新多邊形編輯器
16.3 繪制精靈
16.4 創建一個簡單的粒子引擎
16.5 資源和延伸閱讀
第17章 太空火箭
17.1 Bullet類
17.2 PolygonWrapper類
17.3 Particle類
17.4 Asteroid類
17.5 AsteroidFactory類
17.6 AsteroidExplosion類
17.7 Ship類
17.8 ShipFactory類
17.9 ShipExplosion類
17.10 添加游戲常量
17.11 Acme類
17.12 GameState類
17.13 Score類
17.14 QuickLooper類
17.15 QuickRestart類
17.16 HighScoreMgr類
17.17 管理狀態
17.18 StateController類
17.19 CompleteGame類
17.20 GameLoading狀態
17.21 AttractState類
17.22 PressSpaceToPlay模式
17.23 HighScore狀態
17.24 GameInformationState類
17.25 LevelStarting狀態
17.26 LevelPlaying狀態
17.27 GameOver狀態
17.28 EnterHighScoreName狀態
17.29 創建構建腳本
17.30 資源和延伸閱讀
第18章 結論
第1章 HelloWorld
第2章 輸入
第3章 變換
第4章 時間和空間
第5章 簡單游戲框架
第6章 Vector2f更新
第7章 相交測試
第8章 游戲原型
第9章 文件和資源
第10章 圖像
第11章 文本
第12章 線程
第13章 聲音
第14章 用ANT進行開發
第15章 碰撞檢測
第16章 工具
第17章 太空火箭
資源和延伸閱讀
網路書店 類別 折扣 價格
  1. 新書
    87
    $412