楼主: 九夜神尊

[RMVX发布] ARPG助手→四叉树管理器1.0Base版

[复制链接]
梦石
0
星屑
59
在线时间
84 小时
注册时间
2008-4-19
回帖
403
发表于 2010-10-28 14:53:40 | 显示全部楼层
嗯,考虑一下写一个二维数组式的管理法吧
回复

使用道具 举报

梦石
0
星屑
1408
在线时间
831 小时
注册时间
2007-12-25
回帖
1406
 楼主| 发表于 2010-10-28 15:53:28 | 显示全部楼层
回复 冰蓝的马甲 的帖子
其实二维数组管理管理效率并不会高多少。
主要是这样,移动的时候经常要调动自己的位置,这样就导致不断复制清除数据。
在获取一定范围内的事件的时候,需要扫描整个范围。
比如
0,0,8,8 这样的矩形范围,那样就要整个矩形全部扫描(根据细分程度)

而四叉树,是根据怪物分布的不同,平分的密度也不同。比如一大块地图上只有1-2个事件。
那么四叉树记录这整个区域只有两个事件。这两个事件只要不走出去着整个区域。
就不用改变树结构,总的来说差不多。

   
回复

使用道具 举报

梦石
0
星屑
275
在线时间
1373 小时
注册时间
2005-10-16
回帖
5038

贵宾

发表于 2010-10-28 18:06:10 | 显示全部楼层
对于算法效率神马的倒是没咋研究过,我以前倒是特无奈的试过用两个数组来记录事件的id
evpos_x[0] = [1,3,4]
evpos_x[1] = []
evpos_x[2] = [2,5]
evpos_y[0] = [1,2]
evpos_y[1] = [4,5]
evpos_y[2] = [3]
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复

使用道具 举报

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
回帖
6005

烫烫烫开拓者

发表于 2010-10-28 19:17:16 | 显示全部楼层
显然二维线段树是最快的……不过若是咱的AOE是圆形区域嘎嘎~
哎呀,蛋疼什么的最有爱了
回复

使用道具 举报

梦石
0
星屑
1408
在线时间
831 小时
注册时间
2007-12-25
回帖
1406
 楼主| 发表于 2010-10-28 19:51:11 | 显示全部楼层
回复 yangff 的帖子

我倒是发明了一种新的表示区域的方法。
scope = ?
如果是一个数比如 5,就代表主角周围5格范围
如果是两个数,比如 5,6就代表一个点。
如果是三个数,比如5,6,3,就代表以5,6为中心向外3格范围
四个数=>2,2,6,8。这代表一个矩形区域
如果是数组  =>[4,6],[3,3,5,5] 这样就代表这数组里的元素的区域之和。

自由吧?
回复

使用道具 举报

菜鸟飞呀飞 该用户已被删除
发表于 2010-10-28 21:45:58 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

梦石
0
星屑
1408
在线时间
831 小时
注册时间
2007-12-25
回帖
1406
 楼主| 发表于 2010-10-28 22:10:05 | 显示全部楼层
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
回帖
2407

第1届Title华丽大赛新人奖

发表于 2010-10-29 21:49:26 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
回帖
6005

烫烫烫开拓者

发表于 2011-1-1 14:12:18 | 显示全部楼层
不过想做ARPG但是不想重写地图……
哎呀,蛋疼什么的最有爱了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部