设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索

ARPG助手→四叉树管理器1.0Base版

查看数: 7087 | 评论数: 18 | 收藏 2
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2010-10-24 01:38

正文摘要:

一切的一切都归功于紫苏大人。 否则我不知道世界上有这玩意。 四叉树管理器,用于快速取得指定范围内的事件,指定位置的事件。无需遍历所有事件 只是稍微性能上提升了,因为RM的卡不仅仅是在移动遍历事件上。# ...

回复

yangff 发表于 2011-1-1 14:12:18
不过想做ARPG但是不想重写地图……
沉影不器 发表于 2010-10-29 21:49:26
提示: 作者被禁止或删除 内容自动屏蔽
九夜神尊 发表于 2010-10-28 22:10:05
菜鸟飞呀飞 发表于 2010-10-28 21:45:58
提示: 作者被禁止或删除 内容自动屏蔽
九夜神尊 发表于 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] 这样就代表这数组里的元素的区域之和。

自由吧?
yangff 发表于 2010-10-28 19:17:16
显然二维线段树是最快的……不过若是咱的AOE是圆形区域嘎嘎~
亿万星辰 发表于 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]
九夜神尊 发表于 2010-10-28 15:53:28
回复 冰蓝的马甲 的帖子
其实二维数组管理管理效率并不会高多少。
主要是这样,移动的时候经常要调动自己的位置,这样就导致不断复制清除数据。
在获取一定范围内的事件的时候,需要扫描整个范围。
比如
0,0,8,8 这样的矩形范围,那样就要整个矩形全部扫描(根据细分程度)

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

   
冰蓝的马甲 发表于 2010-10-28 14:53:40
嗯,考虑一下写一个二维数组式的管理法吧
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-16 10:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表