找回密码
 点一下
查看: 3799|回复: 12

斜坡对速度影响系统(疯人帮我看看怎样提高效率好吗?)

[复制链接]
发表于 2010-12-21 19:32:39 | 显示全部楼层 |阅读模式
魔兽里面没啥斜坡,就算是有斜坡上下斜坡时候单位的速度都木有改变,而且在上斜坡的时候魔兽无视斜坡高度,水平速度不变,所以上斜坡时候单位沿斜坡的速度是会变成v/CosA,A是倾斜角。这里我修改了一下,使得上斜坡时候速度会变成(v-300*SinA)*CosA,就说如果角度是垂直的话速度减最多,减300,下坡的时候速度加最多,加300,后面再乘以CosA则是单位在斜坡上速度为v的单位的水平速度,不知道怎么模拟,马马虎虎模拟了一下,这样地形影响下弓箭手在高地上,骑士冲上来之前速度就比较慢,这样弓箭手有利,这样的话就能给魔兽加上一点地形因素的影响了。

K.w3x

105 KB, 下载次数: 77

评分

参与人数 1威望 +1 收起 理由
德鲁依 + 1 未测试

查看全部评分

发表于 2010-12-21 21:55:21 | 显示全部楼层
实际使用时效果应该会低效率……
倾斜角的获取很不好定义……
不过思路不错的……
回复

使用道具 举报

 楼主| 发表于 2010-12-21 22:12:36 | 显示全部楼层
我是每0.01秒测定一次单位的位置,在0.01秒之前已经记录好,0.01秒前骑士的位置和高度,用现在的高度和0.01秒前的高度,用现在的位置和0.01秒前的位置可以计算出倾斜角。由于0.01s这个间隔是很小的,所以这个时候可以假设运动的方向不变。而单位走过的这个小斜坡可以代表单位这个时候站着的位置的倾角。效率低可能就是因为获取单位的高度时候是获取点的,虽然最后是把点删除掉了,但是不知道会不会有什么泄露,额我把上面那个数据300改成单位的默认速度了,这样更好,步兵上坡不会太慢。。。
回复

使用道具 举报

发表于 2010-12-21 22:15:36 | 显示全部楼层
斜率决定的应该是加速度而不是速度,所以感觉还是有些生硬
回复

使用道具 举报

 楼主| 发表于 2010-12-21 22:19:42 | 显示全部楼层
马是会做功的但是这里的坡度增加了做功需要的力。如果骑士像一个轮子一样滚上去我就不需要考虑这么多了,直接一个v0-at了,但是马会做功,这样使得问题复杂化,何况魔兽里面根本就没有设定骑士启动和停下来有加速度,需要自己去模拟,我也试过,但是貌似能力不足以胜任。
回复

使用道具 举报

发表于 2010-12-21 22:35:35 | 显示全部楼层
没那么夸张吧,加个缓冲,让速度的变化不那么快就可以了吧
回复

使用道具 举报

 楼主| 发表于 2010-12-21 22:48:22 | 显示全部楼层
你说给一匹马在平地上加个“缓冲”,很容易?这个缓冲是匀加速么?匀加速倒是简单,但是很明显不是匀加速,要怎么模拟我不知道。还有爬坡。一匹马爬坡,是要以相同的功率爬坡还是以相同的力爬坡呢?还是功率和力都变化的呢?这种我又不懂,所以只弄了个按照坡度大小决定马速度,因为坡度大向上攀爬就越难,速度就应该越小,平地时候速度减少为0,九十度速度减少为所有速度,这只是一个模拟爬坡而已,只是体现单位上坡速度跟坡度有关系而已,还有爬坡还跟单位的心理活动有关系的,如果单位想保持速度,是可以加大功率,加大力度的,这些复杂的东西我想不明白,所以暂时做了这个,以后还会改进吧。
回复

使用道具 举报

发表于 2010-12-22 19:24:48 | 显示全部楼层
引用第2楼frozenleave于2010-12-21 22:12发表的  :
我是每0.01秒测定一次单位的位置,在0.01秒之前已经记录好,0.01秒前骑士的位置和高度,用现在的高度和0.01秒前的高度,用现在的位置和0.01秒前的位置可以计算出倾斜角。由于0.01s这个间隔是很小的,所以这个时候可以假设运动的方向不变。而单位走过的这个小斜坡可以代表单位这个时候站着的位置的倾角。效率低可能就是因为获取单位的高度时候是获取点的,虽然最后是把点删除掉了,但是不知道会不会有什么泄露,额我把上面那个数据300改成单位的默认速度了,这样更好,步兵上坡不会太慢。。。
忽然想到,如果单位在正在升高或者正在降低的升降机上会怎么样。。。。
回复

使用道具 举报

发表于 2010-12-23 07:10:54 | 显示全部楼层
没效率……
回复

使用道具 举报

 楼主| 发表于 2010-12-23 14:06:55 | 显示全部楼层
那怎样可以提高效率呢? ,我不知道虾米是效率啊,难道是因为里面的数学运算太多了么,不过在魔兽里面没有出现不流畅现象说明电脑计算速度还跟得上,或者是0.01秒太短了么?楼上可以点评一下为啥没效率么?
回复

使用道具 举报

发表于 2011-5-5 17:31:03 | 显示全部楼层
1.20的版本有么。。。。
回复

使用道具 举报

 楼主| 发表于 2011-5-5 20:44:36 | 显示全部楼层
跟版本没关系的。。。如果用全局变量就不需要哈希表了。
回复

使用道具 举报

发表于 2011-5-5 20:47:18 | 显示全部楼层
要是没有对地形高度做太大修改的话,斜坡可以基本看成是固定坡度,于是用固定公式,方便多了……固定下来之后说不定加速、减速都能做出来了……
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-22 11:05 , Processed in 0.376483 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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