最新标注
热门标注
历史更新
站点地图
RSS
Home
CrazyCoder
»
原创
»
it评论
»
it业界
»
互联网
»
精品软件
开发语言
»
网络编程
编程综合
嵌入式开发
算法
英文资料
汇编语言
PowerBuilder
p2p技术
验证码识别
DotNet
Java教程
C语言教程
C 教程
Delphi教程
VB教程
QQ协议开发
项目管理
»
数据库
»
Web开发
»
Python
Css教程
XML教程
网页特效
PhotoShop教程
Illustrator教程
CorelDraw教程
Ruby教程
CorelDraw教程
网站安全
开发平台-工具
Web
PHP教程
Flash教程
Ajax教程
Javascript教程
Html教程
Dreamweaver
Asp教程
技术综合
»
软件测试
办公软件
QQ相关
Windows
网络技术
游戏开发
软件工程
软件教程
编程思想
游戏开发
外挂开发
OpenApi
AutoCad
广告设计
3D设计
平面设计相关
移动手机开发
服务器
»
Linux
Unix/FreeBsd
web服务器
服务器技术
安全
博文摘选
»
翻译
首页
»
游戏开发
» 地图搜索算法:续《地图遮挡算法》
Rss订阅
地图搜索算法:续《地图遮挡算法》
on 2008-12-14
in
游戏开发
|
0 Comment
Softboy:
看了你
有关
流星的舟地图遮挡算法
及其系列文章
有
些看法
不过首先要声明
是我没有编过什么大
对你和天眼
文章也看不太懂
这里只是抱着学习
态度
(我认为我对这
类算法问题比较强)
有关物体
相互遮挡问题很复杂
我想最完整
解决方案就是建立 3维方位
实际上目前流行
3维游戏都会采用这
类思路方法
而且它们
数据比
流星的舟
更复杂
对于
流星的舟
这
类游戏来说
速度和内存占用方面应没有问题
不过
对于
流星的舟
来说
我们还可以简化这个问题:
1、没有物体
空间重合
2、没有物体
相互遮挡
例如
人站在大树前面
人挡住了树
树叶也可能挡住人
人站在水池中
水池边挡住了人
人也挡住了水池(这里含有空间重合问题)
3、物体
遮挡部分不扩散到周围
例如
人站在房屋旁边
但并不在房屋的后
也可能被屋檐遮挡
这会使我下面给出
例子出现问题
4、没有其他穿透问题
例如
桌子
腿可能露出人腿、栏杆露出后面
物体等
窗户半透明等等
那么
我想知道下面
方案是否可行?
1、首先
对每
种物体进行分析
建立struct GameObject
结构来描述各种物体
2、把不可移动
物体事先处理
这样可以加快运行速度
3、建立两张map图表
张用于进行有关游戏
各种运算
张专门用于显示
当然
也可合而为
4、有关用于显示
图表
我这里给出了
个简化
例子
这个例子要求每次都重新处理全部物体
实际上应该可以找到更加技术
思路方法只处理和变化有关
物体
5、这里要求采用天眼所说
“静态分图”?
6、合成完显示图表后
再在分图
基础上画出全部图案
7、对map和GameObject
复杂化可能可以处理互相遮挡等问题
8、当然
也可按天眼
思路方法只把图形分成列
但区别的处在于这里采用
是覆盖
而不是搜索
总的
中心思想是数据和图像分开处理
游戏只是在显示时才用到图像数据
当然
如果你不愿意分图
在没有互相遮挡等问题时
也可先计算出物体
显示顺序
再整块整块地画图
不过
在计算显示先后顺序时
不需要用递归
可先建立静止物体显示先后顺序链表
再把动态人物插入列表中
这种显示思路方法
好处是可部分解决穿透问题
如有互相遮挡等问题
你
定要采用分图技术
=
struct GameObject包括Number表示该物体
共占有
方格数
ShelteredNumber表示该物体阴影占
方格数
data指向
维列表,x、y分别表示该方格相对该物体
位置
其中前Number个元素指向该物体根部占据
位置
ID:该物体
ID
mapstruct为地图结构
其中
主要元素为:ID:地表元素IDCoverID:物体元素IDCoverObjectNumber:该处相对于该物体所在
位置
=
A:指向GameObject结构
指针ObjectID:A物体
ID
注意:可能有区别
ObjectID的相同
Ax、y是该物体所在
位置对于每
个物体
进行如下处理:
i;for (i=0; i< A->Number+A->ShelteredNumber; i
)//对A物体
每
个区域进行处理{
mapx,mapy; struct mapstruct *mapdeal; mapx=x+A->data[i].x; mapy=y+A->data[i].y; mapdeal=&map[mapx][mapy]; //使用指针以避免重复
下标计算 // TempObject=GetObjectPtr(mapdeal->CoverID);//由ID获得GameObject指针 //如CoverID=0
则返回NULL
(IsNotSheltered(A,mapdeal->CoverID))//A没有被TempObject遮挡 { //则应当显示A物体 mapdeal->CoverID=ObjectID; mapdeal->CoverObjectNumber=i; }}
BOOL IsNotSheltered(GameObject *A,ObjectNumber ID){ BOOL judge=TRUE;
(ID
0)
TRUE; //如果没有B物体则不被遮挡 ASSERT(没有互相遮挡,物体不能重叠); for (
i=0; i< A->Number ; i
) {
(map[x+A->data[i].x][y+A->data[i].y].CoverID
ID) //如果A物体根部所在
位置被物体ID遮挡
则A物体
定在 { //物体ID的后-----参看ASSERT judge=FALSE;
; } }
judge;}
Tags:
矢量地图压缩算法
地图着色算法
地图匹配算法
地图搜索算法
延伸阅读
2008-12-14
--
地图搜索算法:流星的舟地图遮挡算法(第一稿)
最新评论
发表评论
昵称
评论
验证码
点击图片更换
赞助商广告
随机更新
extjs是什么,是什么让你的ExtJS应用程序运行缓慢?
限制的近义词,MonoTouch 的限制
Windows Phone Mango Tips(1)
新浪微博被关闭,新浪微博会不会被关闭?
安捷伦,Anyway,记下我的安捷伦处面
matlab仿真,matlab仿真神经网络(1)BP神经网络
香港首家苹果零售店今日开业:粉丝通宵排队
t4模板,不要错过如此强大的T4模板
CentOS 6下搭建Apache+MySQL+PHP+SSL
ampgt,Step By Step(Java 常用对象篇<二>)
有关MATLAB 7.0 在Windows 系统上...
java修饰符,【C++】我对C++ const修饰符的一些认识
软件测试策略,自动测试软件的设计策略
mysql数据库,mysql数据库安全注意事项(转)
c语言程序解析,C语言学习趣事_戏说间接引用和解析引用
加载音频模块失败,我的模块加载系统 v10
whois,Asp.net Domain Whois功能的实现
面向对象编程,.NET4.0面向对象编程漫谈
微博失落者下注:网易盛大转战轻博客
观点:如何正确的对待设计模式
疯狂足球——Android手机游戏开发(实习报告)
java数组,JAVA中运用数组的四种排序方法
IIS+PHP5.3+FastCGI+MySQL5....
最后一站,LINQ学习之旅——最后一站"LTX"之XML基本操作(下)
焕发新生,强悍的Windows 8:让陈年旧手机HTC Shift焕发新生
积的近似数习题,近似与精确——《狂人C》习题解答15(第三章习题5)
进程死锁,Java中Thread的使用、死锁以及生产者消费者问题详解
java中用法,Java中Interface的用法
cnblog,My feeling of CNBLOG
团宝网大规模裁员,传团宝网上海分公司大规模裁员 官方未予置评
热门标注
十分钟读懂中国
(1)
炫酷跑车壁纸
(1)
出使西域的女使节
(1)
末日来临
(2)
蛇沼鬼城
(1)
ios多线程编程
(1)
热血江湖刀客合成
(1)
房屋租赁合同
(1)
淘易购
(1)
炫酷跑车图片
(1)
班超出使西域
(1)
pdf文件的制作
(1)
2012末日来临
(1)
唯美彩虹
(1)
一本书读懂中国史
(1)
龙年贺岁对联
(1)
wlan安全模式
(1)
圣诞节送苹果橙子
(1)
相分离法
(1)
四消丸说明书
(1)
最近更新
梦幻诛仙》两次增开新服瞬满
10月22日19:00时再次加开3组新服
arp绑定脚本:绑定HGE到AngelScript脚本系统
游戏开发流程:游戏开发制作流程
MD2关键帧动画实现思路方法
通用编程器:游戏引擎中的通用编程技术
3dgameengine:3D Engine 的设计架构
运动模糊:简单的运动模糊效果实现思路方法
qq游戏外挂:通过游戏策划阶段防治游戏外挂
坐标转换:3D坐标转换成屏幕坐标的思路方法
外挂制作实例:游戏外挂制作例子包含代码
setstreamsource:SetStreamSource函数和数据流的使用
depthoffield:景深效果(Depth of Field) 的实现思路方法
角色扮演游戏引擎的设计原理
hge使用:HGE使用GDI绘制中文字体
如何成为一个程序员:想成为一个游戏程序员需要有以下资料
游戏设计的十条戒律
1万游戏开发专业人员难满足10万需求
扫雷游戏vb代码:模拟实现扫雷游戏代码
界面设计:界面流程控制模式设计
最新标注
十分钟读懂中国
(1)
炫酷跑车壁纸
(1)
出使西域的女使节
(1)
末日来临
(2)
蛇沼鬼城
(1)
ios多线程编程
(1)
热血江湖刀客合成
(1)
房屋租赁合同
(1)
淘易购
(1)
炫酷跑车图片
(1)
班超出使西域
(1)
pdf文件的制作
(1)
2012末日来临
(1)
唯美彩虹
(1)
一本书读懂中国史
(1)
龙年贺岁对联
(1)
wlan安全模式
(1)
圣诞节送苹果橙子
(1)
相分离法
(1)
四消丸说明书
(1)
最新评论