本書是一本面向廣大編程愛好者的游戲設計類圖書。本書從最基本的Java圖形開發開始,對游戲的原理及其Java程序實現進行了詳細介紹,包括動畫的實現、音效的處理、鼠標和鍵盤事件的處理。本書以游戲開發案例為主要內容,書中涉及的游戲都是大家耳熟能詳的,例如推箱子、連連看、網絡中國象棋、開心農場、兩人麻將和俄羅斯方塊等,讓讀者對枯燥的語言學習充滿樂趣,對于初中級的Java學習者是很好的參考資料。本書不僅列出了完整的游戲代碼,同時對所有的源代碼進行了非常詳細的解釋,做到了通俗易懂、圖文并茂。 本書適用于游戲編程愛好者、程序設計人員和Java語言學習者。
第1章計算機游戲開發Java基礎
1.1計算機游戲的發展歷史
1.2計算機游戲的類型
1.2.1RPG(角色扮演類)游戲
1.2.2SLG(策略類)游戲
1.2.3AVG(冒險類)游戲
1.2.4PUZ(益智類)游戲
1.2.5STG(射擊類)游戲
1.2.6ACT(動作過關類)游戲
1.2.7RAC(賽車類)游戲
1.3計算機游戲的策劃和開發工具
1.3.1游戲的策劃基本概念
1.3.2游戲設計的基本內容
1.3.3游戲的程序開發工具
1.4開發游戲的Java技術
1.4.1標識符
1.4.2基本類型
1.4.3運算符和表達式
1.4.4類型轉換
1.4.5打印語句
1.4.6邏輯控制語句
1.5Java語言的類和對象
1.5.1對象
1.5.2成員方法和類的特點
1.5.3包
1.5.4Java訪問權限修飾符
1.5.5Java語言注釋
1.6Java數組和Vector容器應用
1.6.1Java數組
1.6.2Vector容器
1.7文件操作
1.7.1字節流
1.7.2字符流
第2章游戲圖形界面開發基礎
2.1AWT簡介
2.2Swing基礎
2.3Swing組件
2.3.1按鈕(JButton)
2.3.2單選按鈕(JRadioButton)
2.3.3復選框(JCheckBox)
2.3.4組合框(JComboBox)
2.3.5列表(JList)
2.3.6文本框(JTextField和JPasswordField)
2.3.7面板(JPanel)
2.3.8表格(JTable)
2.3.9框架(JFrame)
2.4布局管理器
2.4.1布局管理器的概述
2.4.2流布局管理器(FlowLayout)
2.4.3邊界布局(BorderLayout)
2.4.4卡片布局管理器(CardLayout)
2.4.5網格布局管理器(GridLayout)
2.4.6null布局管理器
2.5常用事件處理
2.5.1動作事件處理
2.5.2鼠標事件處理
2.5.3鍵盤事件處理
第3章Java圖形處理和Java 2D
3.1Java圖形坐標系統和圖形上下文
3.2Color類
3.3Font類和FontMetrics類
3.3.1Font類
3.3.2FontMetrics類
3.4常用的繪圖方法
3.4.1繪制直線
3.4.2繪制矩形
3.4.3繪制橢圓
3.4.4繪制弧形
3.4.5繪制多邊形和折線段
3.4.6清除繪制的圖形
3.5Java 2D簡介
3.5.1Java 2D API
3.5.2Graphics2D簡介
3.5.3Graphics2D的圖形繪制
3.5.4Graphics2D的屬性設置
3.5.5路徑類
3.5.6平移、縮放或旋轉圖形
第4章Java游戲程序的基本框架
4.1動畫的類型及幀頻
4.1.1動畫類型
4.1.2設置合理的幀頻
4.2游戲動畫的制作
4.2.1繪制動畫以及動畫循環
4.2.2消除動畫閃爍現象——雙緩沖技術
4.3使用定時器
4.4設置游戲難度
4.5游戲與玩家的交互
4.6游戲中的碰撞檢測
4.6.1矩形碰撞
4.6.2圓形碰撞
4.6.3像素碰撞
4.7游戲中的圖像繪制
4.7.1圖像文件的裝載
4.7.2圖像文件的顯示
4.7.3繪制卷軸型圖像
4.7.4繪制磚塊型圖像
4.8游戲角色開發
4.9游戲聲音效果設定
第5章推箱子游戲
5.1推箱子游戲介紹
5.2程序設計的思路
5.3程序設計的步驟
5.3.1設計地圖數據類(MapFactory.java)
5.3.2設計地圖類(Map.java)
5.3.3設計游戲面板類(GameFrame.java)
5.3.4播放背景音樂類(Sound.java)
第6章雷電飛機射擊游戲
6.1雷電游戲介紹
6.2程序設計的思路
6.2.1游戲素材
6.2.2地圖滾動的原理實現
6.2.3飛機和子彈的實現
6.2.4主角飛機子彈與敵機的碰撞檢測
6.3關鍵技術
6.3.1多線程
6.3.2Java的Thread類和Runnable接口
6.4雷電飛機游戲設計的步驟
6.4.1設計子彈類(Bullet.java)
6.4.2設計敵機類(Enemy.java)
6.4.3設計游戲界面類(GamePanel.java)
6.4.4設計游戲窗口類(planeFrame.java)
第7章21點撲克牌游戲
7.121點撲克牌游戲介紹
7.2關鍵技術
7.2.1撲克牌面繪制
7.2.2識別牌的點數
7.2.3Dealer(莊家)要牌智能實現
7.2.4游戲規則的算法實現
7.3程序設計的步驟
7.3.1設計撲克牌類(Card.java)
7.3.2設計一副牌類(Poker.java)
7.3.3設計游戲面板類(PokerPanel.java)
7.3.4設計游戲主窗口類(Pai.java)
第8章連連看游戲
8.1連連看游戲介紹
8.2程序設計的思路
8.2.1連連看游戲數據模型
8.2.2動物方塊布局
8.2.3連通算法
8.2.4智能查找功能的實現
8.3關鍵技術
8.3.1動物方塊圖案的顯示
8.3.2鼠標相關的事件
8.3.3延時功能
8.4程序設計的步驟
8.4.1設計游戲界面窗體(LLKFrame.java)
8.4.2設計游戲面板類(LLKPanel.java)
第9章人物拼圖游戲
9.1人物拼圖游戲介紹
9.2程序設計的思路
9.3關鍵技術
9.3.1按鈕顯示圖片實現
9.3.2圖片按鈕移動實現
9.3.3從BufferedImage轉化成ImageIcon
9.4程序設計的步驟
9.4.1設計單元圖片類(Cell.java)
9.4.2枚舉類型(Direction.java)
9.4.3游戲面板類(GamePanel.java)
9.4.4主窗口類(MainFrame.java)
第10章對對碰游戲(按鈕版)
10.1對對碰游戲介紹
10.2程序設計的思路
10.2.1游戲素材
10.2.2設計思路
10.3關鍵技術
10.3.1動態生成8×8的按鈕
10.3.2進度條組件JProgressBar
10.3.3定時器功能
10.4程序設計的步驟
10.4.1設計游戲窗口類(MyJframes.java)
10.4.2設計內部定時器類
第11章對對碰游戲(圖形版)
11.1對對碰游戲介紹
11.2對對碰游戲設計思路
11.2.1游戲素材
11.2.2設計思路
11.3程序設計的步驟
11.3.1設計游戲窗口類(GameRoom.java)
11.3.2設計內部游戲面板類
11.3.3設計內部定時器類
第12章華容道游戲
12.1華容道游戲介紹
12.2華容道游戲設計思路
12.2.1數據結構
12.2.2游戲邏輯
12.3程序設計的步驟
12.3.1創建游戲人物按鈕類(Person)
12.3.2游戲窗體類(Hua_Rong_Road.Java)
第13章開心農場
13.1開心農場游戲介紹
13.2程序設計的思路
13.2.1游戲素材
13.2.2設計思路
13.3關鍵技術——實現圖形按鈕
13.4開心農場設計的步驟
13.4.1設計農作物類(Crop.java)
13.4.2設計背景的面板(BackgroundPanel.java)
13.4.3設計農場類(Farm.java)
13.4.4設計窗體類(MainFrame.java)
第14章單機版五子棋游戲
14.1單機版五子棋游戲簡介
14.2五子棋設計思想
14.3關鍵技術
14.3.1Vector向量容器
14.3.2判斷輸贏的算法
14.4程序設計的步驟
第15章“網絡五子棋”游戲
15.1“網絡五子棋”游戲簡介
15.2五子棋設計思想
15.2.1界面設計
15.2.2通信協議
15.3關鍵技術
15.3.1Socket技術
15.3.2InetAddress類簡介
15.3.3ServerSocket類
15.3.4Socket類
15.4程序設計的步驟
15.4.1設計服務器端(Server.java)
15.4.2設計客戶端類(Client.java)
第16章網絡中國象棋
16.1中國象棋介紹
16.2關鍵技術
16.2.1UDP簡介
16.2.2DatagramPacket類
16.2.3DatagramSocket類
16.2.4P2P知識
16.3網絡中國象棋設計思路
16.3.1棋盤表示
16.3.2棋子表示
16.3.3走棋規則
16.3.4坐標轉換
16.3.5通信協議設計
16.3.6網絡通信傳遞棋子信息
16.4網絡中國象棋實現的步驟
16.4.1設計棋子類(Chess.java)
16.4.2設計棋盤類(ChessBoard.java)
16.4.3設計游戲窗體(Frmchess.java)
第17章RGP走迷宮游戲
17.1RGP走迷宮游戲介紹
17.2程序設計的思路
17.2.1游戲素材
17.2.2設計思路
17.2.3RGP人物的動畫
17.3走迷宮游戲設計的步驟
17.3.1設計主窗體類(miGong.java)
17.3.2設計游戲面板類(MyPanel.java)
第18章百變方塊游戲
18.1百變方塊游戲介紹
18.2關鍵技術
18.2.1幾何圖形的繪制
18.2.2幾何圖形的平移旋轉
18.2.3給GeneralPath包含的圖形填充顏色
18.3游戲設計思路
18.4程序設計的步驟
18.4.1設計拼塊類(CChip.cs)
18.4.2設計面板視圖類(MyJPanel.java)
18.4.3設計主類(MainBlock.java)
第19章打獵游戲
19.1打獵游戲介紹
19.2程序設計的思路
19.2.1游戲素材
19.2.2設計思路
19.3關鍵技術
19.3.1控制動物組件的移動速度
19.3.2隨機間歇產生動物組件
19.3.3玻璃面板顯示
19.4打獵游戲設計的步驟
19.4.1設計小鳥類(BirdLabel.java)
19.4.2設計野豬類(PigLabel.java)
19.4.3設計背景面板類(BackgroundPanel.java)
19.4.4設計主窗體類(MainFrame.java)