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;
|
if (player == null || player.health == null || enemy == null) return;
|
||||||
|
|
||||||
// BT5-Dev #25 — Player 발이 Enemy 머리 영역 영역 영역 영역 발동 (footHeadDelta 영역 영역 영역 영역)
|
// BT5-Dev #37 — PD 의도 정확 반영: 점프 상태(공중) + Player.y > Enemy.y = 무조건 밟기
|
||||||
bool stomped = dyAtCollision > STOMP_DELTA_MIN && dyAtCollision < STOMP_DELTA_MAX;
|
// 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;
|
Schedule<EnemyDeath>().enemy = enemy;
|
||||||
player.Bounce(player.jumpTakeOffSpeed / 3f);
|
player.Bounce(player.jumpTakeOffSpeed / 3f);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// BT5-Dev #35 — 점프 상태(공중) 측면 충돌 시 피해 X 방어 코드 (PD 지시)
|
if (inAir)
|
||||||
if (!player.IsGrounded)
|
|
||||||
{
|
{
|
||||||
Debug.Log($"[PEC] 점프 상태 측면 충돌 영역 피해 차단 (delta={dyAtCollision:F2})");
|
// 점프 + Enemy 옆·아래 = 피해 차단 (방어 코드)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue