Godot 2d 游戏如何实现单边碰撞的墙和平台 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Game Engines
Unreal Engine
MyCryENGINE
professionaler
V2EX    游戏开发

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

  •  
  •   professionaler 2024-09-05 09:02:07 +08:00 3647 次点击
    这是一个创建于 467 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    20 条回复    2024-09-05 21:01:55 +08:00
    289396212
        1
    289396212  
       2024-09-05 09:20:53 +08:00
    还真的有人用 Godot
    1daydayde
        2
    1daydayde  
       2024-09-05 09:27:21 +08:00
    问问 chatgpt ?
    linkopeneyes
        3
    linkopeneyes  
       2024-09-05 09:30:37 +08:00
    试试用 test_move?
    professionaler
        4
    professionaler  
    OP
       2024-09-05 09:35:14 +08:00
    @0312birdzhang chagpt 的 gotdot 数据太少,给的都是错误答案
    zuosiruan
        5
    zuosiruan  
       2024-09-05 09:54:02 +08:00 via iPhone
    @289396212 估计早就 自己写写 demo
    mon6912640
        6
    mon6912640  
       2024-09-05 09:59:52 +08:00
    @289396212 #1 土豆兄弟玩过不?就是用 Godot 搞的
    fgwmlhdkkkw
        7
    fgwmlhdkkkw  
       2024-09-05 10:06:42 +08:00
    RayCast2D 行吗
    fgodt
        8
    fgodt  
       2024-09-05 11:04:40 +08:00
    把水平平台旋转下不就垂直和斜坡了么
    dacoco
        9
    dacoco  
       2024-09-05 11:08:55 +08:00
    试试检测物体 A 对墙 B 的速度方向?
    kiolygenius
        10
    kiolygenius  
       2024-09-05 11:09:51 +08:00
    为了逃离 Unity 做准备
    coidx
        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
    ccpp132
        12
    ccpp132  
       2024-09-05 12:13:24 +08:00
    不能从这一侧打开是吧 233

    一般如果游戏物理检测是自己实现的话,可以在碰撞检测的时候按你的运动方向来关掉一些平台的碰撞,比如往左走时就把允许从右往左通过的门的碰撞检测关掉。
    moooooooo
        13
    moooooooo  
       2024-09-05 12:56:34 +08:00
    射线啊
    LaTero
        14
    LaTero  
       2024-09-05 13:47:14 +08:00 via Android
    Godot 的物理烂得很,有现成的 box2d 和 physyx 不用非要自己搞一个。自己用 shapecast 搞吧,不过 godot 的 shapecast 也难用得很。另外用 shape cast 来移动记得要留一点 skin width ,要不然会因为浮点精度穿墙。
    p1gd0g
        15
    p1gd0g  
       2024-09-05 14:49:09 +08:00
    难得见到讨论 godot ,可惜我在上班
    hanaTsuk1
        16
    hanaTsuk1  
       2024-09-05 15:13:13 +08:00
    去 godot 的贴吧找找吧 发个帖有吧主解答的
    marukosoft
        17
    marukosoft  
       2024-09-05 15:45:33 +08:00
    我之前写过,跳跃的时候把角色碰撞层关闭,下落时再打开就行,碰撞层在脚上画一层薄薄的就行
    marukosoft
        18
    marukosoft  
       2024-09-05 15:46:24 +08:00
    @marukosoft #17 不好意思,没看到斜坡和垂直的墙
    dyexlzc
        19
    dyexlzc  
       2024-09-05 16:16:30 +08:00
    平面加个 area ,角色进入的时候方便调整碰撞是否生效。
    角色速度和你的平面法线夹角西小于 90 度就允许通过,大于等于 90 度就 block 吧
    professionaler
        20
    professionaler  
    OP
       2024-09-05 21:01:55 +08:00
    @coidx 好的我瞅瞅
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2912 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 14:08 PVG 22:08 LAX 06:08 JFK 09:08
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86