文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发其他语言在Pocket PC上编写游戏之八
精品推荐
特别推荐
·控制面板知多少
·给你十条学习Ruby语言的理由
·分页管理机制
·Perl 语言的重要价值体现
·经验技巧:分享两条Delphi开发经验
·Java编程思想:面向对象的逻辑思维方法
·Samba系统简介
热点TOP10
·AIX 5L 学习大纲/简易教程(2)(未经许可,请勿COPY)
·DENX U-Boot及Linux使用手册
·EZ-USB 68013A开发指南
·图象处理中的边缘检测------canny算子
·Visual C++ ADO数据库编程入门
·利用 wordXP 实现自动排班
·UDT协议-基于UDP的可靠数据传输协议
·XPCOM--LINUX下的组件开发技术
·MyEclipse JSF 快速入门中文版(上)
·samba和openldap结合实战
·AIX 5L 学习大纲/简易教程(1)(未经许可,请勿COPY)
·Microsoft Windows XP Embedded 开发工具概述
·eMbedded Visual C++开发入门
·在VC6中创建wxWidgets项目[附图]
·数值计算程序大放送-线性代数方程组
·列表视图控件
·visual studio 2005 简体中文团队开发版 SQL server 2005简体中文版下载
·Visual Studio 2005:在 Visual C++ 中开发自定义的绘图控件
·汇编语言工具下载
·多文档界面(MDI)

在Pocket PC上编写游戏之八

日期:2007年5月3日 作者: 查看:[大字体 中字体 小字体]


导读

  或许,所有的动作类游戏都需要实现对碰撞检查。换句话说,一个游戏不能没有相撞检查或碰撞测试相对应的策略。

  检查相撞有若干种方法,发生碰撞或两个或者多个的精灵对象发生了重叠,则每个游戏会依据自己的规则给出相匹配的方法。例如,一个射击的游戏(就一个小的精灵) 需要检查是否有子弹或者武器撞到了另外的对象。 如果我们的对象很小并且正在高速的移动。我们可以使用简单的形状覆盖方法,来进行判断是否碰撞。我们只需要简单的判断是否在一个矩形区域发生了重叠。这样做不会造成视觉上的不舒服,因为人的眼睛是很容易被欺骗的。但是如果游戏是象空手道(我喜欢武将争霸;-))那种类型,那么我们需要更进行详细的检查了。因为 它的精灵很复杂而且形状较大。我们需要把角色的身体划分解成很多小的单元,手,头,腿,脚,身体,or a punch(雷神更喜欢双截棍,哈哈)。还有通常它们的移动速度不是太快。因此我们需要另外的更好一些的方法来使游戏更加有趣。

  基本的方法

  推箱子游戏: 推箱子游戏使用的技术曾经是很流行的经典的技巧,尤其是对于所有的初学者它比较容易理解。 它长时间的被用于小游戏,象Pac人(吃豆,我喜欢),经典的炸弹人,Sokoban(雷神不知)等等。主要的思路就是把游戏中的每一个事件都放到一个数组矩阵中。

在Pocket PC上编写游戏之八

<图1-游戏推箱子>

  这种方法的主要的策略是使用一个二维数组表示游戏中的所有事物。每个数组元素永远占用一个字节(0-255)。数组元素保存地图的状况。里面都是什么呢?我们用Pac-man游戏为例说明一下,我们预先规定1代表通道,2代表墙,3代表幽灵,4代表Pac-man。我们的数组在游戏中的数据看起来就象下面这样

<图2-地图表示>

00 00 00 00 01 01 01 01 01 00 00 00 00 00 00 00 00 00 00
00 00 00 00 01 00 00 02 01 00 00 00 00 00 00 00 00 00 00
00 00 00 00 01 02 00 00 01 00 00 00 00 00 00 00 00 00 00
00 00 01 01 01 03 00 00 01 01 00 00 00 00 00 00 00 00 00
00 00 01 00 00 02 02 00 00 01 00 00 00 00 00 00 00 00 00
01 01 01 00 01 00 00 00 00 01 00 00 00 01 01 01 01 01 01
01 00 00 00 01 00 00 00 00 01 01 01 01 01 00 00 03 03 01
01 00 02 00 00 02 00 00 00 00 00 00 00 00 00 00 03 03 01
01 01 01 01 01 00 01 01 01 00 00 01 00 01 01 00 03 03 01
00 00 00 00 01 00 00 00 00 00 00 01 01 01 01 01 01 01 01
00 00 00 00 01 01 01 01 01 01 01 01 00 01 00 00 00 00 00

  这种方法只适合一些经典的小游戏,因为它实际上并不对真实对象形状相撞进行检查。它只是检查每个块的状态而已。此外,游戏对象和块的尺寸应该是一样的,精灵的身体也应该尽可能的接近方形的形状。检查的算法是容易实现的,只需要检查当前的块将移动的下一块的值。给个例子Pac-man: 如果下一块的值1,说明那是一个通道,我们将原来的值是4(代表Pac-man)的块改成1,把刚才得到的值1改成4就行了。如果下一块是2意味着那是墙,我们不能移动到那里,如果是3意味着我们的pac-man英雄被幽灵抓住了。

  这种方法非常的快并且它只需要很少的处理时间。如果你想为速度不快的机器开发游戏,那这是一个不错的选择。

  遮罩图形: 它是从贴图方法发展而来的。关键技术是增加贴图的分辨率并且减小每块贴图的尺寸。这样做的代价是需要更多的内存。在屏幕上显示的效果实际上是遮罩图形和原来图片经过处理后的结果,见下图;

在Pocket PC上编写游戏之八在Pocket PC上编写游戏之八
<图4-图形与遮罩图形>

  让我们理解起来更容易些: 我们可以使用一张图片作为遮罩图形,并且使用不同的颜色区别出我们的游戏中的不同对象。 例如,在一个射击的游戏中,背景被黑颜色代表,红颜色代表弹药,蓝颜色代表游戏者,绿颜色代表电脑的边界, 黄颜色代表地图上的障碍物。当我们改变对象在显示屏幕上的位置时,我们需要同时更新它在遮罩图形中相对应的位置。

在Pocket PC上编写游戏之八

在Pocket PC上编写游戏之八
<少许5地图和遮罩图形>

  好现在我们来看看如何检查碰撞? 我们需要按顺序和层次画出对象;首先是电脑部分,然后是游戏玩家的部分,最后是子弹。在进行碰撞检查之前,我们可以使用遮罩图形先获得对象的象素和颜色值。 例如,我们更新子弹,需要从遮罩图形得到子弹的形状包含的所有象素并且可以获得原来的颜色值。如果它与背景颜色一样,那意味着没有事情发生。如果它是红或蓝色的,那意味着子弹碰撞到了游戏或电脑对象。根据这些,我们就可以进行碰撞检测,判断出哪个对象被子弹击中。

...........................

  我们已经讲述了两种碰撞检测的方法,他们都使用的是光栅技术。让我们想象一下,如果一个游戏有一张巨大无比的地图场景,如果我们还使用上面的策略,那我们就需要一张同样巨大无比的遮罩图形。结果是需要非常多的内存。显然这不是我们希望的,怎么办?让我们在进一步学习利用向量技术来进行碰撞检测。

PtInRect(...)

  PtInRect(...) API。 这是Win32 SDK下面的一个标准的API。它可以计算出一个点(x,y)是否存在于一个矩形区域(x1,y1,x2,y2)中,它的返回值是真或假。

在Pocket PC上编写游戏之八
<图 6 点在矩形中?>

Point P(x,y) will be in Rect(x1,y1,x2,y2) area when
x >= x1 && x < = x2 && y>= y1 && y < = y2

  这种方法始终检查一个点是否在对象的范围内。在我的纸牌游戏中,使用到这个方法。可以通过它知道,我的笔尖点中的是所有长方形扑克牌中的那一张。

[1] [2] 下一页 




上一篇:MIDlets实现用户界面(GUI)编程

下一篇:Windows CE串口通讯类的实现

在Pocket PC上编写游戏之八 相关文章:
·孤胆枪手2 - 游戏秘籍
·罪恶都市 - 游戏秘籍
·帝国时代2:征服者 - 游戏秘籍
·《侠盗猎车手-罪恶都市》修改 - 游戏秘籍
·三国群侠传 流程攻略 - 游戏攻略
·《仙剑奇侠传2》完美补充攻略 - 游戏攻略
·暗黑破坏神2:毁灭之王 符文物品、符石功能、赫拉笛克方块等 - 游戏秘籍
·《合金装备3 食蛇者》超详尽剧情 - 游戏攻略
·《鬼舞者3》中文功略(PS2) - 其他电视游戏攻略秘籍 - 其他电视游戏
·重返德军总部 全攻略 - 游戏攻略
在Pocket PC上编写游戏之八 相关软件:
·三国群英传5 宇峻科技 单机游戏
·QQ游戏大厅V2007 Beta 1
·游戏王 混沌力量
·GBA《游戏王GX学院决斗》模拟器
·超经典街机游戏13合一
·多多真人视频棋牌游戏BETA V1.52
·培训游戏
·经典爱国游戏:抗日地雷战
·穷爸爸富爸爸现金流游戏 游戏I+II 书籍 映像
·新剑侠情缘中文版 完美游戏全属性修改器

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot