GameDesign 板


LINE

我想用box2D引擎做一个头尾相接的横卷轴世界,就是像在一个圆型的 行星上前进最後会回到起点那样。目前的问题是如果只是单纯把头尾座标接 在一起,那衔接处附近的物体在物理引擎中可能会有一些异常的行为,例如 假如有个宽度2的物体在x座标1的地方,却需要处理和地图尾端的物体相碰 的状况。目前这个问题我想边做边学,但又怕选了死胡同走,所以想请问一 下有没有人处理过类似状况,然後用哪个方式解决是比较好的。   我目前想到的方法有三种: 1.头尾座标衔接(超过尾端的物件让它从起点开始算)。问题在於上述的异 常状况不确定有没有办法在不改动引擎本身很多的前提下解决。 2.做成一个圆形星球上的世界,具体做法如http://ppt.cc/LQ_v。这是目前 我唯一确定自己知道怎麽完成的方法,但它的问题是要不断重新对每个物 件计算重力,因此在一个较大的世界里它会是效能极低的方式。若采用这 种方法就必须另外做重设重力的开关。 3.做成一个数学上在管状表面上的世界(想像把一支水管立在地上,然後其 表面可以播放游戏画面)。这个做法不用重设重力,但因为要把平面座标 变换成管状表面上的座标,因此当运动中的物体数量多的时候效能可能会 较低。   是否有更好的方法? --     Il Cavaliere Inesistente    http://dejavu.blogdns.org/   骑士是种一旦失去存在的意义,就会崩解消失的东西  因此他们的一生总在追求着某些事物,以维持自己的存在 如果有了存在的理由,即使是一副空的铠甲,也可以成为骑士 ※ 编辑: hermitwhite 来自: 111.253.85.181 (10/16 18:02)
1F:推 linjack:因为是个很有趣的问题,但是我猜有人想过,所以去查了 10/16 18:07
3F:→ linjack:看起来无正解,我猜可能也无正解,总之多一点资料可看 :) 10/16 18:08
4F:推 linjack:用 "wrapping" 这个字眼去查还能多查到几篇 10/16 18:10
5F:→ hermitwhite:wow感谢,我没想到那个关键字 10/16 18:11
6F:推 azureblaze:头尾各加一小段重复的地形,超出边界一定距离後再 10/16 18:34
7F:→ azureblaze:把座标设回去 10/16 18:34
  采用这个方法在重复处的物体碰撞还是会有异常情况发生。如一楼提供 的连结中,他们是把该处的物件复制成头尾各一份然後属性锁在一起;但因 为引擎因素这个构想执行起来并不漂亮,而且大到足够跨越重复地形长度的 物体还是会出问题。我估计在这个交界处附近的效能应该也会降低不少。
8F:推 Ebergies:3 的做法应该可以符合你的需求, 座标转换不是什麽问题 10/16 18:44
9F:→ Ebergies:毕竟你是做 2D Game, 因此直接在投影的时候设好矩阵就好 10/16 18:46
10F:→ Ebergies:另外还有一种方法是让你的角色在原点运动, 世界相对你的 10/16 18:48
11F:→ Ebergies:角色运动, 这样就可以避免交界处产生的问题出现在萤幕上 10/16 18:49
3.的做法我也大概可以想像要怎麽解决。不过主要的问题不是投影,而 是因为要把运动行为拘束在管状表面中(被碰撞的物体不能沿切面出去), 所以势必也要某程度去修改这个物理引擎的core(大概就是用广义相对论去 想)。至於角色在原点运动这个,如果第一人称角色一移动其他所有物件都 要在物理引擎中重新取得位置这个也满困扰的...。 ※ 编辑: hermitwhite 来自: 111.253.85.181 (10/16 19:17)
12F:推 Ebergies:虽然用想的觉得很麻烦不过其实麻烦的是电脑呀... LOL 10/16 21:25
13F:推 KanoLoa:怎会有取得位置的困扰,难道引擎没有camera可用? 10/16 23:34
  因为这里的问题不是视点而是头尾衔接世界的物理。所以我把Ebergies 的最後一个建议理解成「每当视点移动时就重新定义world map来保持头尾 都离可以看到的地方很远」,从而避免交界处附近的不正常现象出现在视线 中。这样的作法会造成每当视点移动那所有东西(无论画面内外)的座标都 要重定义而且动量要重算。所以我觉得它本身不是一个可以考量的答案。不 论就程式的效能或致密性来说,2.的圆形星球和3.的管状表面应该都更好。 其实我是有考虑过一些这种「把不想看的东西藏起来法」的修改版本,但因 为它数学上实在太不漂亮,所以除非有很好的理由(例如效能超高)否则还 是不太想用。 ※ 编辑: hermitwhite 来自: 111.253.85.181 (10/17 01:33)
14F:→ KanoLoa:到一段区域後,将座标後移会很吃效能吗? 10/17 16:54
15F:→ KanoLoa:当有物件要接近已转移区时,预测是否会进入,是就先转移 10/17 18:09
这样好像不会,但仔细想想还是不能真的看不到就不管。让我们设想一 种状况:有AB二物体相互倚靠,达成静力平衡;其中A的中心X座标为10、B的 中心X座标是12,今由於主视点的移动,造成座标11之後的物体应变换转移至 起点之前,所以B要转移到起点之前。那麽这个A-B静力平衡的系统会?   也就是说,即使我们把交界点摆在视点之外希望不要看到任何异常的碰 撞现象,但其实连大部分经过座标变换的静力平衡系统都会崩塌。其解决方 法是例如把交界区域的物体复制成头尾各一份然後属性锁在一起(回到一楼 的连结了),或者是判断发生座标变换的物体接触到哪些其他物体,然後暂 时把这些物体锁死不能动。可能还有一些小洞需要补不过这样应该能做出就 非多人的游戏来说可用的系统。 ※ 编辑: hermitwhite 来自: 111.253.85.181 (10/17 23:56)
16F:→ Ebergies:动态的将转移区设定在空的地方可以解决,当然世界不能挤 10/18 01:00
17F:→ hermitwhite:感谢大家的讨论,我再来要去Box2D的讨论区问问看上面 10/18 17:28
18F:→ hermitwhite:这些修改可能会动到引擎核心里面的哪些部分。 10/18 17:28
19F:→ hermitwhite:然後就要开始设定游戏的资料架构了。 10/18 17:29







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP