为什么我的精灵的 CollusionShape2d 在 Godot 中没有水平变化

问题描述 投票:0回答:1

AnimatedSprite2d 正在水平变化,但 CollusionShape2d 没有,代码如下:

if direction == 1:
        $AnimatedSprite2D.scale.x = 1
        $CollisionShape2D.scale.x = 1
    if direction == -1:
        $AnimatedSprite2D.scale.x = -1
        $CollisionShape2D.scale.x = -1

我该如何修复它?

我尝试将其更改为flip.h,但它给我带来了一个错误,它超出了范围,而且我的共谋形状是一个矩形。

2d gdscript godot4
1个回答
0
投票

改变物理对象的比例通常是一个坏主意,

CollisionShape2D
也不例外。

要解决这个问题,请尝试改变解决问题的方式,以避免在运行时调整碰撞形状的大小。您可以实现此目的的一些方法是:

  • 始终保持碰撞形状相同。
    • 更改角色的视觉效果/运动,使碰撞形状和视觉效果始终匹配。
  • 针对不同的上下文切换不同的碰撞形状。
    • 创建具有不同大小/位置等的多个碰撞形状,然后根据上下文打开/关闭这些碰撞形状。

希望这些解决方案之一适合您!

© www.soinside.com 2019 - 2024. All rights reserved.