1. Defining the Collision Hierarchy: Hitbox, Hurtbox, Pushbox
In modern 2D engines like the one powering Pokémon Arena 2D, a sprite or 3D skeletal rig is wrapped in multiple overlapping collision volumes with specialized roles:
1. Hurtboxes (Green/Blue): Represents the character's physical body vulnerability. When an opponent's hitbox overlaps your hurtbox, damage is calculated.
2. Hitboxes (Red): Generated by attacks, projectiles, and disjoined weapon strikes. They carry properties such as damage value, hitstun duration, knockback angle, and chip damage.
3. Pushboxes (Yellow): Governs character-to-character physical displacement, preventing fighters from occupying the exact same X/Y world coordinates.
| Box Type | Color Code | Active Duration | Primary Function |
|---|---|---|---|
| Hurtbox | Green / Cyan | Always active (unless I-frames) | Receives incoming damage and status effects |
| Hitbox | Red / Orange | Active attack frames only | Deals damage, hitstun, and knockback trajectories |
| Pushbox | Yellow | Constant during movement | Prevents sprite overlap and drives corner spacing |
| Throwbox | Purple | Grab startup frames | Bypasses guard to initiate directional throws |
2. Disjointed Hitboxes and Spacing Advantage
A "disjointed hitbox" occurs when an attack hitbox extends beyond the character's hurtbox. In Pokémon Arena 2D, projectile weapons and elemental blasts (such as Pikachu's Thunderbolt or Charizard's Flamethrower) feature pure disjoints. Disjointed attacks dominate neutral interactions because they cannot be counter-hit by standard physical strikes.
3. Sub-Frame Collision Sweeping and Tunneling Prevention
High-speed physics games frequently suffer from "tunneling," where a projectile or fast-moving fighter passes entirely through an opponent between discrete frames. Developers solve this using Continuous Collision Detection (CCD) and swept-volume raycasts, calculating mathematical intersections along the path of motion rather than static snapshot comparisons.