シンプルなプラットフォーマーである Godot での私の (最初の) プロジェクトでは、キャラクター スライドが必要でした。キャラクターがスライドするときは、小さな隙間を通り抜けることができるように、1 タイルの高さだけにする必要があります。これ以上の解決策を知らなかったので、ヒットボックスを次のように変更しました。
(また、歩行には別のヒットボックスを使用しました)
enum Shape {
NORMAL,
WALK,
SLIDE
}
func set_shape(name):
$NormalCShape.disabled = true
$WalkCShape.disabled = true
$SlideCShape.disabled = true
if name == Shape.NORMAL:
$NormalCShape.disabled = false
elif name == Shape.WALK:
$WalkCShape.disabled = false
elif name == Shape.SLIDE:
$SlideCShape.disabled = false
これはあまり良い解決策ではありません。最近、さまざまな重力方向を追加したため、コードがさらに複雑になり、結果として 12 の異なるヒットボックスが作成されました。これを行うためのより良い解決策は見つかりませんでしたが、それが必要だと感じています。
誰でもこれで私を助けることができますか?