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

Project1

 找回密码
 注册会员
搜索
楼主: 九夜神尊
打印 上一主题 下一主题

高手讨论→RM里你们在乎程序效率吗?

[复制链接]

Lv4.逐梦者

梦石
1
星屑
10037
在线时间
4429 小时
注册时间
2005-10-22
帖子
6951

开拓者贵宾

21
发表于 2010-10-22 21:32:36 | 只看该作者
我反而觉得是 正是因为我在乎效率采用的ruby
开发一个小软件 ruby的开发速度是c不能比的
对于商业来说, ...
柳之一 发表于 2010-10-13 02:46

开发效率最高+1 ~\(≧▽≦)/~


回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8075
在线时间
7346 小时
注册时间
2010-7-16
帖子
4915

开拓者

22
发表于 2010-10-23 03:43:59 | 只看该作者
忽然想到一个问题。假如有m个子弹和n个敌人,都储存在数组中。如何在最短时间内找出所有重叠的子弹-敌人对?如果逐一搜索,要做m*n次检查。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
23
发表于 2010-10-23 05:31:06 | 只看该作者
本帖最后由 紫苏 于 2010-10-23 05:34 编辑
主而rm脚本的效率又不高,用高级数据结构的额外支出可能还抵不上带来的收益。
熊的选民 发表于 2010-10-9 15:32

Ruby 有本地接口,可以用 C 来写数据结构。

忽然想到一个问题。假如有m个子弹和n个敌人,都储存在数组中。如何在最短时间内找出所有重叠的子弹-敌人对 ...
熊的选民 发表于 2010-10-23 03:43

这个就是求交集的算法了,目前最常见的做法是把其中一个方位向量的数组转换为散列表,然后迭代另一个方位向量数组,判断当前元素是否在之前转换的散列表中。
见:http://rpg.blue/forum.php?mod=viewthread&tid=157558
不过这个也是限制在你用无序的数组保存方位的假设上。如果是有序结构或四叉树,一次遍历就完事儿了(当然,如果用了有序或四叉树结构,那可能就不会这么做碰撞检测了,而是在插入/移动节点的时候就判断)。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8075
在线时间
7346 小时
注册时间
2010-7-16
帖子
4915

开拓者

24
发表于 2010-10-23 05:53:01 | 只看该作者
回复 紫苏 的帖子
并不只是寻找交集,如果坐标是连续的,就得进行距离检查。比如把“重叠“定义为“距离小于5.0“

   
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1323
在线时间
831 小时
注册时间
2007-12-25
帖子
1558
25
 楼主| 发表于 2010-10-23 08:57:33 | 只看该作者
托紫苏大人的福,我已经开始对4叉树研究了。
已经研究出来最快速度获得指定范围内的对象了。
精卫赤龙腾   
总是存在一种强大,去完成似乎不可能的事情.
无畏战乾程   
或是需要一种勇气,去挑战几乎不存在的胜利.
一味玄真魂     
这是拥有一种恒心,去化解根本没有解的困难.
烈卫开天径    
只是带着一种决心,去争取残存的最后的希望。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8075
在线时间
7346 小时
注册时间
2010-7-16
帖子
4915

开拓者

26
发表于 2010-10-23 10:20:23 | 只看该作者
回复 九夜神尊 的帖子
期待能用上你做的4叉树系统

   
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
27
发表于 2010-10-23 10:30:49 | 只看该作者
回复
并不只是寻找交集,如果坐标是连续的,就得进行距离检查。比如把“重叠“定义为“距离小于5.0“

    ...
熊的选民 发表于 2010-10-23 05:53


换汤不换药,数组转换为散列表后,想如何实现元素的二元关系都行,普通情况下是判断相等,你这里可以判断距离
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1323
在线时间
831 小时
注册时间
2007-12-25
帖子
1558
28
 楼主| 发表于 2010-10-23 10:46:11 | 只看该作者
回复 熊的选民 的帖子

现在在实现任意几何图形范围内对象索取。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
236
在线时间
74 小时
注册时间
2009-7-20
帖子
186
29
发表于 2010-10-23 13:03:57 | 只看该作者
对于一般程序已经不在乎效率了,在乎易读。
好吧……
恭喜发财!
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1225
在线时间
15 小时
注册时间
2008-1-25
帖子
3
30
发表于 2010-10-24 12:37:18 | 只看该作者
本帖最后由 applesnake 于 2010-10-24 12:39 编辑

RM以牺牲效率和灵活性来换取简单性。越灵活的系统效率会越高,但是使用会更复杂。灵活性和复杂度并非简单线性关系,增加一个维度的灵活性的同时复杂性会随之成几何级数的增长——对比2D游戏和3D游戏的绘图过程就可见一斑。
对于现在的计算机游戏逻辑的处理的开销几乎可以忽略,除非超大型的循环、遍历或复杂的物理,AI计算。
脚本本身具有很强的针对性,而RM又是在这个基础上做了进一步的强化——针对多数2D RPG。所谓需求决定实现,所以RM的体系结构并不适用于构造过于复杂图形子系统。
对现有体系结构中的图形和特效的处理需要专业背景和对RM体系结构的深入了解,一般的使用者无法做到。建议:一般使用者不要在RM中使用脚本构建过于复杂的图形子系统,因为这超出RM框架本身包括图形库的能力。

评分

参与人数 1星屑 +200 收起 理由
九夜神尊 + 200 此乃资深高手,除膜拜无法表达泪目之情。 ...

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-11-14 13:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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