水平的平台可以用 OneWayCollision 实现,但是垂直的墙和斜坡该怎么实现?
1
289396212 2024-09-05 09:20:53 +08:00
还真的有人用 Godot
|
![]() |
2
0312birdzhang 2024-09-05 09:27:21 +08:00
问问 chatgpt ?
|
![]() |
3
sjhhjx0122 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 好的我瞅瞅
|