作者NDark (溺於黑暗)
看板GameDesign
标题Re: [程式] 如何建立一个物件不重叠的空间
时间Mon Apr 12 21:17:34 2010
※ 引述《yan04870449 (杨伯)》之铭言:
: if( itEnemy跟this距离 < 50.f )
: {
: 向量 v2 = itEnemy->getPosition() - this->getPosition();
: v2.Normalize();
: itEnemy->setPosition( itEnemy->getPosition() + v2 );
: this->setPosition( getPosition - itEnemy->getPosition() )
: }
请想像一个状况,假如你的场景是这样.
f=0 物-物-物-物-物-物-物-物-物-物-物-物-物-物-物
每个 - 代表太近了的距离
在这个时间点f=0会发生什麽状况
捡查到第一个 , 物1被往左推 , 物2被往右推
物< >物物-物-物-物-物-物-物-物-物-物-物-物-物
捡查到第二个
物 物<>物物-物-物-物-物-物-物-物-物-物-物-物
捡查到第三个
物 物-物<>物物-物-物-物-物-物-物-物-物-物-物
...
捡查到最後一个
物 物-物-物-物-物-物-物-物-物-物-物-物-物 物
这时候才t=1
所以你会发现你的物件在每个时点推来推去,最後却只有两个东西移动了.
剩下的又会在下个时间点继续推挤.
如果你是在作物理模拟,我会说你做的不错.
但是如果你不是在作物理实验,你可能需要想一下.
给你一点hint,我们在作AI的时候都会这样作
环境->思考->动作
这样是一个loop.
可是当一个A人物动作了环境就跟着改变,那其他人的环境应该要
参考A动作之前的环境 还是 参考A动作之後的环境?
如果是後者,这机制是不是有先手的优势,而造成不公平?
(这又可以聊到两个平等基础的对奕,先手必定有优势的命题了)
--
"May the Balance be with U"(愿平衡与你同在)
视窗介面游戏设计教学(
http://0rz.tw/V28It ),讨论,分享。欢迎来信。
视窗程式设计(Windows CLR Form)游戏架构设计(Game Application Framework)
游戏工具设计(Game App. Tool Design )
电脑图学架构及研究(Computer Graphics)论文代读(含投影片制作)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.167.136.41
※ 编辑: NDark 来自: 118.167.136.41 (04/12 21:17)
1F:推 yan04870449:感谢您@@ 可能我要花一点时间理解,不过 04/12 21:25
2F:→ yan04870449:环境->思考->动作 这个让我有更多想法了@@ 04/12 21:25
3F:推 elfkiller:受益良多 推一个 04/14 01:44