質問内容
以下のコードですが、フラグ変数が大量にあり、複雑な条件分岐やtrue,false値の変化など色々噛み合い、もうこれ以上増えると手に終えません。
どうすればいいのでしょうか?
試したこと
1,取り得ず完成しています。
2,最低限の条件に簡素化する、if文内で出来るだけ一つの式にして2つ成立している時は、if文の中にif文を書くとう形式を取りました。
知りたこと
わかりやすい処理を作る方法
環境
Godot: 4.6
Lang: C#
//プレイヤー自体の衝突
if (GetSlideCollisionCount() > 0)
{
isColliding = true;
}
else
{
isColliding = false;
}
if(isColliding == true)
{
if(groundChecker.IsOnGround == true)
{
//地面にいるとき
if(slopeChecker.IsOnSlope == true)
{
//傾斜にいるとき
isJumpEnabled = true;
isTimeOut = false;
isLongJumping = false;
isOnSlope = true;
}
else
{
//平面に居る時
isJumpEnabled = true;
isTimeOut = false;
isLongJumping = false;
isOnSlope = false;
}
}
}
else
{
isJumpEnabled = false;
isOnSlope = false;
}
if((isJumpEnabled == true) && (isOnSlope == false))
{
//平面にいるときは重力をかける
velocity.Y = GROUND_GRAVITY;
}
else if((isJumpEnabled == true) && (isOnSlope == true))
{
//傾斜にいるときは重力をかけない
velocity.Y = 0;
}
https://cdn.discordapp.com/attachments/1487703794421727282/1487703794992025600/PlayerController.cs?ex=69ca1ba0&is=69c8ca20&hm=2eb9ee8256b3f35cbb873aa00f9173bd7e331e6f640f2f610f8f667f5165ee12&
https://cdn.discordapp.com/attachments/1487703794421727282/1487703795348537354/GroundChecker.cs?ex=69ca1ba1&is=69c8ca21&hm=e4d20d3a8e705b506cf14cf8f538229d6a327da19f92d04feea937da252c56c9&
from Discord by amagichan00