BT5-Dev #37: 점프+Player 위(transform.y) 단순 조건 (PD 의도 정확 — '점프 후 밟을 때 통과' 차단)
PD 보고: '점프 후 밟을 때 통과된다는 의미였어' 진단: - footHeadDelta 좁은 영역(-0.3~0.05) → 빠른 떨어짐 한 프레임 안 miss → stomped=False - !IsGrounded(점프 상태) 측면 차단 → Player 그냥 통과 → 밟기 발동 X 정정 (단순 조건 — footHeadDelta 정확 영역 폐기): - inAir(!IsGrounded) && playerAbove(player.y > enemy.y) → 무조건 밟기 - inAir + 옆·아래 → 피해 차단 - 지상 → 피해(i-frame) Player.y > Enemy.y 단순 조건 = 점프 후 떨어지는 어떤 시점에도 catch 가능
This commit is contained in:
parent
7de7025648
commit
2b345d929c
|
|
@ -36,22 +36,24 @@ namespace Platformer.Gameplay
|
|||
{
|
||||
if (player == null || player.health == null || enemy == null) return;
|
||||
|
||||
// BT5-Dev #25 — Player 발이 Enemy 머리 영역 영역 영역 영역 발동 (footHeadDelta 영역 영역 영역 영역)
|
||||
bool stomped = dyAtCollision > STOMP_DELTA_MIN && dyAtCollision < STOMP_DELTA_MAX;
|
||||
// BT5-Dev #37 — PD 의도 정확 반영: 점프 상태(공중) + Player.y > Enemy.y = 무조건 밟기
|
||||
// footHeadDelta 좁은 영역(-0.3~0.05) 빠른 떨어짐 한 프레임 miss → 점프+위 단순 조건으로 catch 보장
|
||||
bool inAir = !player.IsGrounded;
|
||||
bool playerAbove = player.transform.position.y > enemy.transform.position.y;
|
||||
|
||||
Debug.Log($"[PEC] stomped={stomped} delta={dyAtCollision:F2} (range {STOMP_DELTA_MIN}~{STOMP_DELTA_MAX}) pInvuln={player.health.IsInvulnerable}");
|
||||
Debug.Log($"[PEC] inAir={inAir} above={playerAbove} delta={dyAtCollision:F2} pY={player.transform.position.y:F2} eY={enemy.transform.position.y:F2}");
|
||||
|
||||
if (stomped)
|
||||
if (inAir && playerAbove)
|
||||
{
|
||||
// 점프 + Enemy 위 = 밟기 (Bounce + EnemyDeath)
|
||||
Schedule<EnemyDeath>().enemy = enemy;
|
||||
player.Bounce(player.jumpTakeOffSpeed / 3f);
|
||||
return;
|
||||
}
|
||||
|
||||
// BT5-Dev #35 — 점프 상태(공중) 측면 충돌 시 피해 X 방어 코드 (PD 지시)
|
||||
if (!player.IsGrounded)
|
||||
if (inAir)
|
||||
{
|
||||
Debug.Log($"[PEC] 점프 상태 측면 충돌 영역 피해 차단 (delta={dyAtCollision:F2})");
|
||||
// 점프 + Enemy 옆·아래 = 피해 차단 (방어 코드)
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue