登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入   新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書

『簡體書』VisualBasic.NET经典游戏编程开发

書城自編碼: 1944648
分類:簡體書→大陸圖書→計算機/網絡程序設計
作者: 陈锐
國際書號(ISBN): 9787030346100
出版社: 科学出版社
出版日期: 2012-07-01
版次: 1 印次: 1
頁數/字數: 444/486750
書度/開本: 16开 釘裝: 平装

售價:HK$ 165.2

我要買

share:

** 我創建的書架 **
未登入.


新書推薦:
东亚世界形成史论(新版)
《 东亚世界形成史论(新版) 》

售價:HK$ 107.8
奶奶的半个心愿  “课本里的作家” 中考热点作家孙道荣2024年全新散文集
《 奶奶的半个心愿 “课本里的作家” 中考热点作家孙道荣2024年全新散文集 》

售價:HK$ 41.8
天生坏种:罪犯与犯罪心理分析
《 天生坏种:罪犯与犯罪心理分析 》

售價:HK$ 97.9
新能源材料
《 新能源材料 》

售價:HK$ 63.8
传统文化有意思:古代发明了不起
《 传统文化有意思:古代发明了不起 》

售價:HK$ 43.8
无法从容的人生:路遥传
《 无法从容的人生:路遥传 》

售價:HK$ 74.8
亚述:世界历史上第一个帝国的兴衰
《 亚述:世界历史上第一个帝国的兴衰 》

售價:HK$ 107.8
大处着眼:持久战与《论持久战》
《 大处着眼:持久战与《论持久战》 》

售價:HK$ 85.8

 

建議一齊購買:

+

HK$ 259.5
《.NET 4.5与Visual Basic 2012 高级编》
+

HK$ 211.5
《Visual Basic 2012入门经典(第7版)(.NE》
+

HK$ 262.4
《Excel专业开发(第2版)(一本专为严谨的Excel开发人》
+

HK$ 205.9
《Visual Basic从入门到精通(第3版)(附光盘1张)》
+

HK$ 289.1
《Visual Basic程序开发范例宝典(第3版)》
+

HK$ 283.2
《Visual Basic开发实战1200例(第Ⅰ卷)(史上最》
編輯推薦:
《VisualBasic.NET经典游戏编程开发》是一个很好的参考资料。我们不仅列出了完整的游戏代码,同时对所有的源代码进行了非常详细的解释,做到了通俗易懂、图文并茂。恰当的游戏实例特别有助于初学者仿效理解、把握问题的精髓;让读者在实践中掌握和领会Visual
Basic.NET编程的基本技巧和思想精髓。
內容簡介:
《Visual Basic.NET经典游戏编程开发》以游戏实例的形式向读者展示了Visual Basic.NET的编程精髓,将Visual Basic.NET编程中的语法、技巧等方面的知识融会其中。书中涉及的游戏都是大家耳熟能详的,例如,推箱子、俄罗斯方块、连连看、坦克大战等。《Visual Basic.NET经典游戏编程开发》让原本枯燥的语言学习充满乐趣。对于初、中级的VisualBasic.NET学习者来说,《Visual Basic.NET经典游戏编程开发》是一个很好的参考资料。我们不仅列出了完整的游戏代码,同时对所有的源代码进行了非常详细的解释,做到了通俗易懂、图文并茂。恰当的游戏实例特别有助于初学者仿效理解、把握问题的精髓;让读者在实践中掌握和领会Visual Basic.NET编程的基本技巧和思想精髓。
《Visual Basic.NET经典游戏编程开发》可供游戏编程爱好者、程序设计人员参考、阅读。
目錄
第1章 连连看游戏
1.1 连连看游戏介绍
1.2 程序设计的思路
1.2.1 连连看游戏数据模型
1.2.2 动物方块布局
1.2.3 连通算法
1.2.4 智能查找功能的实现
1.3 关键技术
1.3.1 动物方块图案的显示
1.3.2 在图片框控件上绘制永久的图形
1.3.3 鼠标相关的事件
1.3.4 倒计时功能
1.4 程序设计的步骤
1.4.1 设计游戏界面窗体
1.4.2 编写程序代码
第2章 推箱子游戏
2.1 推箱子游戏介绍
2.2 程序设计的思路
2.2.1 推箱子游戏数据结构
2.2.2 游戏规则实现
2.2.3 关卡地图编辑器设计
2.2.4 撤销功能实现
2.3 关键技术
2.4 程序设计的步骤
2.4.1 设计游戏窗体
2.4.2 推箱子游戏关卡地图编辑器
第3章 华容道游戏
3.1 华容道游戏介绍
3.2 程序设计的思路
3.2.1 数据结构
3.2.2 内部逻辑
3.3 程序设计的步骤
3.3.1 创建游戏界面窗体
3.3.2 编写程序代码
第4章 黑白棋游戏
4.1 黑白棋游戏介绍
4.2 程序设计的思路
4.3 关键技术
4.3.1 游戏素材和棋子的显示
4.3.2 翻转对方的棋子
4.3.3 显示执棋方可落子位置
4.3.4 判断胜负功能
4.4 黑白棋游戏设计的步骤
4.4.1 设计游戏界面窗体
4.4.2 编写程序代码
第5章 扫雷游戏
5.1 扫雷游戏介绍
5.2 程序设计的思路
5.3 关键技术
5.3.1 动态添加雷块按钮控件
5.3.2 无雷方块拓展对于周围无雷的空白块
5.4 程序设计的步骤
5.4.1 设计游戏窗体
5.4.2 编写程序代码
第6章 对对碰游戏
6.1 对对碰游戏介绍
6.2 程序设计的思路
6.3 关键技术
6.3.1 My.Application
6.3.2 My.Computer
6.3.3 My.Settings
6.3.4 My.Resources
6.4 程序设计的步骤
6.4.1 设计方块类Block
6.4.2 设计游戏场景类GameFild
6.4.3 设计游戏窗体
第7章 乒乓球游戏
7.1 乒乓球游戏介绍
7.2 程序设计的思路
7.2.1 球的移动
7.2.2 四面反弹的球
7.2.3 左右拖曳的击球板
7.2.4 击球反弹
7.3 关键技术
7.3.1 建立快捷键
7.3.2 改变反弹方向
7.4 乒乓球游戏设计步骤
第8章 斗地主扑克牌游戏
8.1 斗地主游戏介绍
8.2 程序设计的思路
8.2.1 扑克牌的命名
8.2.2 保存扑克牌信息
8.2.3 牌手牌的储存
8.2.4 给3个牌手发牌
8.2.5 在游戏中出牌顺序逻辑控制
8.2.6 获取每种类型牌的张数
8.2.7 获得出牌类型
8.2.8 排序显示扑克牌
8.3 出牌规则的实现
8.3.1 判断出牌是否是炸弹、产生炸弹、炸弹是否合法
8.3.2 判断出牌是否是火箭、产生火箭、火箭是否合法
8.3.3 判断出牌是否是四带二、产生四带二、四带二是否合法
8.3.4 判断出牌是否是地雷三张相同牌、产生地雷、地雷是否合法
8.3.5 判断出牌是否是三带一、产生三带一、三带一是否合法
8.3.6 判断出牌是否是三带二、产生三带二、三带二是否合法
8.3.7 判断出牌是否是对牌、产生对牌、对牌是否合法
8.3.8 判断出牌是否是单牌、产生单牌、单牌是否合法
8.3.9 判断出牌是否是三顺、产生三顺、三顺是否合法
8.3.10 判断出牌是否是滚筒、产生滚筒、滚筒是否合法
8.3.11 判断出牌是否是双顺、产生双顺、双顺是否合法
8.3.12 判断出牌是否是顺子、产生顺子、顺子是否合法
8.4 程序设计的步骤
8.4.1 设计游戏界面窗体
8.4.2 出牌规则的实现
第9章 人物拼图游戏
9.1 人物拼图游戏介绍
9.2 程序设计的思路
9.3 关键技术
9.3.1 动态添加图片控件
9.3.2 卸载上次游戏的图片控件
9.4 程序设计的步骤
第10章 七巧板游戏
10.1 七巧板游戏介绍
10.2 程序设计的关键技术
10.2.1 几何图形的绘制
10.2.2 几何图形的平移旋转
10.2.3 给GraphicsPath包含的图形填充颜色
10.3 程序设计的步骤
10.3.1 设计拼块类
10.3.2 设计窗体类
第11章 百变方块游戏
11.1 百变方块游戏介绍
11.2 程序设计的思路
11.3 程序设计的步骤
11.3.1 设计拼块类
11.3.2 设计窗体类
第12章 俄罗斯方块
12.1 俄罗斯方块游戏介绍
12.2 程序设计的思路
12.3 程序设计的步骤
12.3.1 设计方块类Block
12.3.2 设计游戏类Game
12.3.3 设计游戏窗体
第13章 贪吃蛇游戏
13.1 贪吃蛇游戏介绍
13.2 程序设计的思路
13.3 程序设计的步骤
13.3.1 豆类设计
13.3.2 块类
13.3.3 蛇类设计
13.3.4 场地类设计
13.3.5 设计窗体类
第14章 网络中国象棋
14.1 中国象棋介绍
14.1.1 棋盘
14.1.2 棋子
14.1.3 各棋子的走法说明
14.1.4 关于胜、负、和
14.2 关键技术
14.2.1 UDP协议
14.2.2 UdpClient类
14.2.3 UdpClient类开发UDP程序的过程
14.3 程序设计的思路
14.3.1 棋盘表示
14.3.2 走棋规则
14.3.3 棋子坐标转换
14.3.4 根据图片的索引号获取棋子棋盘坐标
14.3.5 移动棋子
14.3.6 通信协议设计
14.3.7 网络通信传递棋子信息
14.3.8 生成棋谱信息
14.4 网络中国象棋具体实现
第15章 飞碟跳棋游戏
15.1 飞碟跳棋游戏介绍
15.2 程序设计的思路
15.2.1 飞碟及棋盘背景绘制
15.2.2 地图文件
15.3 程序设计的步骤
第16章 数独游戏设计
16.1 数独游戏介绍
16.2 程序设计的思路
16.2.1 数独数字的布局生成
16.2.2 游戏界面生成
16.3 关键技术
16.3.1 动态添加数独数字按钮控件
16.3.2 判断是否右键单击窗体
16.4 程序设计的步骤
第17章 汽车IQ游戏
17.1 汽车IQ游戏介绍
17.2 程序设计的思路
17.2.1 Car类
17.2.2 地图文件
17.2.3 游戏窗体
17.3 程序设计的步骤
17.3.1 汽车类设计
17.3.2 设计游戏窗体
17.3.3 设计地图窗体
第18章 网络聊天游戏
18.1 程序设计的思路
18.1.1 功能分析
18.1.2 细化聊天游戏通信规程
18.1.3 聊天游戏客户端界面设计
18.1.4 聊天游戏服务器端界面设计
18.2 关键技术
18.2.1 Net workStream类
18.2.2 StreamReader类
18.2.3 StreamWriter类
18.2.4 TcpClient类
18.2.5 TcpListener类
18.3 客户端程序实现步骤
18.4 服务器端实现步骤
第19章 智力问答游戏
19.1 智力问答游戏介绍
19.2 关键技术
19.2.1 在保持连接的方式下进行数据操作
19.2.2 在无状态方式下进行数据操作
19.2.3 DataSet和DataReader
19.3 程序设计的思路
19.4 程序设计的步骤
19.4.1 设计试题类
19.4.2 设计游戏窗体
第20章 网络五子棋
20.1 网络五子棋游戏介绍
20.2 程序设计的思路
20.2.1 界面设计
20.2.2 通信协议
20.3 关键技术
20.4 程序设计的步骤
第21章 坦克大战游戏
21.1 坦克大战游戏介绍
21.2 程序设计的思路
21.3 程序设计的步骤
21.3.1 坦克类设计
21.3.2 子弹类设计
21.3.3 播放声音类设计
21.3.4 游戏窗体类设计
內容試閱
第1章 连连看游戏
1.1连连看游戏介绍
“连连看”是源自台湾的桌面小游戏,自从流入大陆以来风靡一时,它是不分男女老少,适合大众的集休闲、趣味、益智和娱乐于一体的经典小游戏。
“连连看”考验的是各位的眼力,在有限的时间内,要把所有能连接的相同图案,两个一对地找出来。每找出一对,它们就会自动消失,只要把所有的图案全部消完即可获得胜利。所谓能够连接,指的是:无论横向或者纵向,从一个图案到另一个图案之间的连线不能超过两个弯(中间的直线不超过三根),其中,连线不能从尚未消去的图案上经过。
本章开发的连连看游戏效果如图1.1所示。游戏具有倒计时功能,玩家时间是200秒。如果时间到玩家还没有完成,则失败。玩家可以重新开始新的一局游戏。
玩家第一次使用鼠标单击游戏界面中的动物方块,该方块此时为被选中状态,以特殊方式(红色方块)显示;再次单击其他方块,若第二个方块与被选中的方块图案相同,且把第一个方块与第二个方块连起来,中间的直线不超过三根,则消掉这一对方块,否则第一个方块恢复成未被选中状态,而第二个方块变成被选中状态。
本游戏增加智能查找功能,当玩家自己无法找到时,可以右键点击画面,则会出现提示可以消去的两个方块(被加上蓝色边框线)。
1.2程序设计的思路
1.2.1 连连看游戏数据模型
对于游戏玩家而言,游戏界面上看到的“元素”千差万别、变化多端;但对于游戏开发者而言,游戏界面上的元素在底层都是一些数据,只是不同数据所绘制的图片有差异而已。因此建立游戏的状态数据模型是实现游戏逻辑的重要步骤。
连连看的游戏界面是一个N×M的“网格”地图,每个网格上显示一张图片。但对于游戏开发者来说,这个网格只需要用一个二维数组来定义即可,而每个网格上所显示的图片,对于底层的数据模型来说,不同的图片对应于不同的数值即可。连连看的数据模型如图1.2所示。
对于图1.2所示的数据模型,只要让数值为-1(BLANK_STATE)的网格上不绘制动物图片,其他数值是动物方块的图像的ID,非-1(BLANK_STATE)的网格则绘制相应的动物图片,就可显示出连连看的游戏界面。本程序实际上并不是直接使用int二维数组来保存游戏的状态数据,而是采用一维数组m_map。对地图中的行列数的表达,用一个转换法则即可。
例如,点(x1,y2)对应的数组元素m_map(y2*m_nCol+x1)。其中,m_nCol是总列数。当然数组元素下标也可换算出在“网格”地图中的坐标点。
1.2.2 动物方块布局
在游戏开始前,怎么对它进行初始化呢?由于方块需要成对地出现,因此在对地图初始化的时候,不应该仅仅对动物方块的图像ID做简单的随机取数,然后将该随机选出来的物件放到地图区域中去就了事,而是需要成对地对动物方块的图像进行选取,就是说地图区域中的小方块必须是偶数个才行。但是,怎样使方块图案成对出现呢?这里就需要引入一个临时地图tmpMap,该临时地图的大小和实际地图m_map的大小一致。并且先添置好4组完全一样的图像类型ID数据(0~ m_nCol*m_nRow/4)。也就是说每种图像方块有4个。
首先,我们可以先按顺序把每种动物方块(实际上就是标号ID)排好放入ArrayList列表tmpMap(临时地图)中,然后再随机从tmpMap(临时地图)中取一个动物方块放入地图m_map中。实际上程序内部是不需要认识动物方块的图像的,只需要用一个ID来表示,运行界面上画出来的动物图形是根据地图中的ID获取资源里的图片画的。如果ID的值为-1(BLANK_STATE),则说明此处已经被消除掉了。
Private Sub StartNewGame()
`初始化地图,将地图中所有方块区域位置置为空方块状态
DimiNumAs Integer
For iNum=0 To(m_nCol*m_nRow)-1
m_map(iNum)=BLANK_STATE
Next
Dimr As Random=NewRandom()
`生成随机地图
`将所有匹配成对的动物物种放进一个临时地图中
DimtmpMap As ArrayList=NewArrayList()
Dimi As Integer,j As Integer
For i=0 To(m_nCol*m_nRow)\4-1
For j=0 To 3
tmpMap.Add(i)
Next
Next
`每次从上面的临时地图中取走(并在获取后从临时地图中删除)一个动物,
`放到地图的空方块上
For i=0 To m_nRow*m_nCol-1
`随机挑选一个位置
DimnIndex As Integer=r.Next()Mod tmpMap.Count
`获取该选定物件放到地图的空方块中
m_map(i)=CType(tmpMap(nIndex),Integer)
`在临时地图消除该动物
tmpMap.RemoveAt(nIndex)
Next
End Sub
在完成图案方块的摆放及初始化后,下面将对整个游戏实现的关键算法,即图案方块的连通算法进行分析。
1.2.3 连通算法
分析一下连接的情况可以看到,连通算法一般分三种情况,如图1.3所示。
1.直连方式
在直连方式中,要求两个选中的方块x或y相同,即在一条直线上,并且它们之间没有其他任何图案的方块,是三种连接方式中最简单的一种。2.一个折点
其实相当于两个方块划出一个矩形,这两个方块是一对对角顶点,另外两个顶点中某个顶点(即折点),如果可以同时和这两个方块直连,那就说明可以“一折连通”。
3.两个折点
这种方式的两个折点(z1,z2)必定在两个目标点(两个选中的方块)p1、p2所在的x方向或y方向的直线上。
按p1(x1,y1)点向四个方向探测,例如,向右探测,每次x1+1,判断z1(x1+1,y1)与p2(x2,y2)点可否形成一个折点连通,如果可以形成连通,则两个折点连通,否则直到超过图形右边界区域。假如超过图形右边界区域,则还需判断两个折点在选中方块的右侧,且两个折点在图案区域之外的连通情况是否存在。此时判断可以简化为判断p2(x2,y2)点是否可以水平直通到边界。
经过上面的分析,对两个方块是否可以抵消的算法流程图如图1.4所示。
根据图1.4所示的流程图,对选中的两个方块[分别在(x1,y1)、(x2,y2)位置]是否可以抵消的判断如下实现。把该功能封装在IsLink()方法里面,其代码如下:
`判断选中的两个方块是否可以消除
Private Function IsLink(ByVal x1 As Integer,ByVal y1 As Integer,ByVal x2 As
Integer,ByVal y2 As Integer)As Boolean
`X直连方式,即垂直方向连通

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.