V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Game Engines
Unreal Engine
MyCryENGINE
professionaler
V2EX  ›  游戏开发

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

  •  
  •   professionaler · 111 天前 · 2551 次点击
    这是一个创建于 111 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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  
       111 天前
    还真的有人用 Godot
    0312birdzhang
        2
    0312birdzhang  
       111 天前
    问问 chatgpt ?
    sjhhjx0122
        3
    sjhhjx0122  
       111 天前
    试试用 test_move?
    professionaler
        4
    professionaler  
    OP
       111 天前
    @0312birdzhang chagpt 的 gotdot 数据太少,给的都是错误答案
    zuosiruan
        5
    zuosiruan  
       111 天前 via iPhone
    @289396212 估计早就 自己写写 demo
    mon6912640
        6
    mon6912640  
       111 天前
    @289396212 #1 土豆兄弟玩过不?就是用 Godot 搞的
    fgwmlhdkkkw
        7
    fgwmlhdkkkw  
       111 天前
    RayCast2D 行吗
    fgodt
        8
    fgodt  
       111 天前
    把水平平台旋转下不就垂直和斜坡了么
    dacoco
        9
    dacoco  
       111 天前
    试试检测物体 A 对墙 B 的速度方向?
    kiolygenius
        10
    kiolygenius  
       111 天前
    为了逃离 Unity 做准备
    coidx
        11
    coidx  
       111 天前
    可以看看 move_and_slide ,并参考一下官方示例吧 https://github.com/godotengine/godot-demo-projects/tree/master/2d/kinematic_character
    ccpp132
        12
    ccpp132  
       111 天前
    不能从这一侧打开是吧 233

    一般如果游戏物理检测是自己实现的话,可以在碰撞检测的时候按你的运动方向来关掉一些平台的碰撞,比如往左走时就把允许从右往左通过的门的碰撞检测关掉。
    moooooooo
        13
    moooooooo  
       111 天前
    射线啊
    LaTero
        14
    LaTero  
       111 天前 via Android
    Godot 的物理烂得很,有现成的 box2d 和 physyx 不用非要自己搞一个。自己用 shapecast 搞吧,不过 godot 的 shapecast 也难用得很。另外用 shape cast 来移动记得要留一点 skin width ,要不然会因为浮点精度穿墙。
    p1gd0g
        15
    p1gd0g  
       111 天前
    难得见到讨论 godot ,可惜我在上班
    hanaTsuk1
        16
    hanaTsuk1  
       111 天前
    去 godot 的贴吧找找吧 发个帖有吧主解答的
    marukosoft
        17
    marukosoft  
       111 天前
    我之前写过,跳跃的时候把角色碰撞层关闭,下落时再打开就行,碰撞层在脚上画一层薄薄的就行
    marukosoft
        18
    marukosoft  
       111 天前
    @marukosoft #17 不好意思,没看到斜坡和垂直的墙
    dyexlzc
        19
    dyexlzc  
       111 天前
    平面加个 area ,角色进入的时候方便调整碰撞是否生效。
    角色速度和你的平面法线夹角西小于 90 度就允许通过,大于等于 90 度就 block 吧
    professionaler
        20
    professionaler  
    OP
       111 天前
    @coidx 好的我瞅瞅
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1358 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 17:41 · PVG 01:41 · LAX 09:41 · JFK 12:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.