Godot 2d 游戏如何实现单边碰撞的墙和平台

89 天前
 professionaler

https://stackoverflow.com/questions/78946683/godot-how-to-implement-one-way-collision-for-walls-from-left-or-right-side

水平的平台可以用 OneWayCollision 实现,但是垂直的墙和斜坡该怎么实现?

2415 次点击
所在节点    游戏开发
20 条回复
289396212
89 天前
还真的有人用 Godot
0312birdzhang
89 天前
问问 chatgpt ?
sjhhjx0122
89 天前
试试用 test_move?
professionaler
89 天前
@0312birdzhang chagpt 的 gotdot 数据太少,给的都是错误答案
zuosiruan
89 天前
@289396212 估计早就 自己写写 demo
mon6912640
89 天前
@289396212 #1 土豆兄弟玩过不?就是用 Godot 搞的
fgwmlhdkkkw
89 天前
RayCast2D 行吗
fgodt
89 天前
把水平平台旋转下不就垂直和斜坡了么
dacoco
89 天前
试试检测物体 A 对墙 B 的速度方向?
kiolygenius
89 天前
为了逃离 Unity 做准备
coidx
89 天前
可以看看 move_and_slide ,并参考一下官方示例吧 https://github.com/godotengine/godot-demo-projects/tree/master/2d/kinematic_character
ccpp132
89 天前
不能从这一侧打开是吧 233

一般如果游戏物理检测是自己实现的话,可以在碰撞检测的时候按你的运动方向来关掉一些平台的碰撞,比如往左走时就把允许从右往左通过的门的碰撞检测关掉。
moooooooo
89 天前
射线啊
LaTero
89 天前
Godot 的物理烂得很,有现成的 box2d 和 physyx 不用非要自己搞一个。自己用 shapecast 搞吧,不过 godot 的 shapecast 也难用得很。另外用 shape cast 来移动记得要留一点 skin width ,要不然会因为浮点精度穿墙。
p1gd0g
89 天前
难得见到讨论 godot ,可惜我在上班
hanaTsuk1
89 天前
去 godot 的贴吧找找吧 发个帖有吧主解答的
marukosoft
89 天前
我之前写过,跳跃的时候把角色碰撞层关闭,下落时再打开就行,碰撞层在脚上画一层薄薄的就行
marukosoft
89 天前
@marukosoft #17 不好意思,没看到斜坡和垂直的墙
dyexlzc
89 天前
平面加个 area ,角色进入的时候方便调整碰撞是否生效。
角色速度和你的平面法线夹角西小于 90 度就允许通过,大于等于 90 度就 block 吧
professionaler
89 天前
@coidx 好的我瞅瞅

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1070365

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX