
水平的平台可以用 OneWayCollision 实现,但是垂直的墙和斜坡该怎么实现?
1 289396212 2024-09-05 09:20:53 +08:00 还真的有人用 Godot |
2 1daydayde 2024-09-05 09:27:21 +08:00 问问 chatgpt ? |
3 linkopeneyes 2024-09-05 09:30:37 +08:00 试试用 test_move? |
4 professionaler OP @0312birdzhang chagpt 的 gotdot 数据太少,给的都是错误答案 |
6 mon6912640 2024-09-05 09:59:52 +08:00 @289396212 #1 土豆兄弟玩过不?就是用 Godot 搞的 |
7 fgwmlhdkkkw 2024-09-05 10:06:42 +08:00 RayCast2D 行吗 |
8 fgodt 2024-09-05 11:04:40 +08:00 把水平平台旋转下不就垂直和斜坡了么 |
9 dacoco 2024-09-05 11:08:55 +08:00 试试检测物体 A 对墙 B 的速度方向? |
10 kiolygenius 2024-09-05 11:09:51 +08:00 为了逃离 Unity 做准备 |
11 coidx 2024-09-05 11:28:20 +08:00 可以看看 move_and_slide ,并参考一下官方示例吧 https://github.com/godotengine/godot-demo-projects/tree/master/2d/kinematic_character |
12 ccpp132 2024-09-05 12:13:24 +08:00 不能从这一侧打开是吧 233 一般如果游戏物理检测是自己实现的话,可以在碰撞检测的时候按你的运动方向来关掉一些平台的碰撞,比如往左走时就把允许从右往左通过的门的碰撞检测关掉。 |
13 moooooooo 2024-09-05 12:56:34 +08:00 射线啊 |
14 LaTero 2024-09-05 13:47:14 +08:00 via Android Godot 的物理烂得很,有现成的 box2d 和 physyx 不用非要自己搞一个。自己用 shapecast 搞吧,不过 godot 的 shapecast 也难用得很。另外用 shape cast 来移动记得要留一点 skin width ,要不然会因为浮点精度穿墙。 |
15 p1gd0g 2024-09-05 14:49:09 +08:00 难得见到讨论 godot ,可惜我在上班 |
16 hanaTsuk1 2024-09-05 15:13:13 +08:00 去 godot 的贴吧找找吧 发个帖有吧主解答的 |
17 marukosoft 2024-09-05 15:45:33 +08:00 我之前写过,跳跃的时候把角色碰撞层关闭,下落时再打开就行,碰撞层在脚上画一层薄薄的就行 |
18 marukosoft 2024-09-05 15:46:24 +08:00 @marukosoft #17 不好意思,没看到斜坡和垂直的墙 ![]() |
19 dyexlzc 2024-09-05 16:16:30 +08:00 平面加个 area ,角色进入的时候方便调整碰撞是否生效。 角色速度和你的平面法线夹角西小于 90 度就允许通过,大于等于 90 度就 block 吧 |
20 professionaler OP @coidx 好的我瞅瞅 |