공격 판정의 순간

한 번 휘둘렀는데 여섯 번 맞았다

공격의 활성 틱과 여러 피격 영역을 분리하고, 피해를 확정하는 기준을 비교합니다.

A · 겹친 영역마다 피해0 회 · 0 피해
B · 공격 / 대상 / 회차로 확정0 회 · 0 피해

← → / 화면 버튼으로 이동 · Space / 공격 버튼으로 새 공격 입력 · 한 틱은 히트스톱을 넘겨 다음 게임 틱을 실행

한 번 휘둘렀는데 여섯 번 맞았다

문제 · 공간 겹침이 곧 한 번의 피해는 아닙니다

공격이 3틱 동안 상대의 머리와 몸통에 겹치면, 겹침마다 피해를 주는 방식은 6회 피해를 줍니다. 공격 도형이 큰 것과 중복 피해는 다른 문제입니다.

원인 · 도형, 시간, 대상의 역할이 다릅니다

회색 이동 충돌체는 지형 이동용, 주황 공격 상자는 타격 후보 수집용, 청록 피격 영역은 상대의 부위를 나타냅니다. 준비 0~4틱, 활성 [5,8), 회복을 구분합니다. 2회 타격을 켜면 [10,13)에 별도 회차가 추가됩니다.

해결 · 피해 확정 때만 기록합니다

B는 공격 ID, 상대 ID, 타격 회차를 키로 저장합니다. 머리와 몸통은 같은 상대이며 무적 때는 기록을 소비하지 않습니다. 히트스톱 동안 게임 틱은 멈추지만 화면 시계와 입력 수집은 계속됩니다. 그동안 누른 공격은 하나만 대기하며 회복 뒤 실행됩니다.

대가 · 다단 공격과 범위는 설계가 필요합니다

중복 방지 집합을 매 틱 비우면 다시 다단 피해가 됩니다. 넓은 공격 영역은 보이는 그림과 피해가 어긋날 수 있습니다. 여기서는 20Hz 축 정렬 사각형의 즉시 겹침을 직접 계산합니다. 회전 무기의 경로 검사, 엔진의 비동기 겹침 목록, 팀·사망·네트워크 롤백은 구현하지 않았습니다.

Godot · Area2D의 겹침 목록 갱신 시점