Player plane
The player's plane is a 2x1 tile (16x8 pixel) sprite with 4 pre-shifted frames for smooth horizontal movement. A separate banked variant is used when the plane turns left or right.
Centered (straight flight)
plane
Banked (turning left/right)
plane-banked
Sprite data: sprite_plane (centered), sprite_plane_banked (banked).
Helicopter
Regular and advanced helicopters share the same 3x1 tile (24x8 pixel) sprite format with 4 pre-shifted frames per direction. The advanced variant fires missiles at the player.
Regular helicopter
helicopter-reg
Advanced helicopter
helicopter-adv
Sprite data: sprite_enemies_left (left-facing), sprite_enemies_right (right-facing).
Helicopter rotor
The helicopter rotor is a 2-tile wide × 2-pixel tall sprite rendered separately above the helicopter body. Each direction has 4 pre-shifted frames for smooth animation as the helicopter moves horizontally.
Left-facing rotor
rotor-left
Right-facing rotor
rotor-right
Ship
Ships are 3x1 tile (24x8 pixel) sprites with 4 pre-shifted frames per direction.
ship
Sprite data: 8613 (left), 87F3 (right).
Tank
Tanks are 3x1 tile (24x8 pixel) sprites with 4 pre-shifted frames per direction. They move along river banks and fire parabolic shells.
tank
Sprite data: 86D3 (left), 88B3 (right).
Fighter
Fighters are 3x1 tile (24x8 pixel) sprites with 4 pre-shifted frames per direction. They are the fastest enemy at 4 pixels/frame, which means they always move in full character cell increments — so at most 1-2 of the 4 pre-shifted frames are ever displayed.
fighter
Sprite data: 8733 (left), 8913 (right).
Balloon
Balloons are 2x2 tile (16x16 pixel) sprites with 4 pre-shifted frames. Unlike other enemies, balloons have no separate left/right variants — they float vertically.
balloon
Sprite data: sprite_balloon.
Fuel depot
The fuel depot is a 2-tile wide, 25-pixel tall static sprite — the tallest object in the game.
sprite-fuel
Sprite data: sprite_fuel.
Rock
Rocks are 3x2 tile (24x16 pixel) static decorations with 4 variants.
rock-1 rock-2 rock-3 rock-4
Sprite data: sprite_rock.
Explosion
The explosion animation uses 3 frames of 2x1 tile (16x8 pixel) sprites, played back in a 1-2-3-2 loop.
explosion
Sprite data: sprite_explosion_f1 (frame 1), sprite_explosion_f2 (frame 2), sprite_explosion_f3 (frame 3).
Missile and shell
The player's missile is a 1x1 tile (8x8 pixel) sprite with 4 pre-shifted frames and a separate trail sprite drawn below it.
Missile
missile
Trail
missile-trail
Sprite data: sprite_missile (missile), sprite_missile_trail (trail).
Tank shells reuse the missile sprite data but render only 1 pixel height (SPRITE_SHELL_HEIGHT_PIXELS). The shell explosion is a 2x2 tile (16x16 pixel) sprite at sprite_tank_shell_explosion.
Tank shell explosion
The tank shell explosion is a 2x2 tile (16x16 pixel) sprite with 6 frames showing an expanding diamond pattern. Used when tank shells hit the ground or player.
tank-shell-explosion
Unused explosion (prototype)
An unused 6-frame animation at sprite_unused_explosion showing a diamond shape expanding from a single pixel to a full diamond. Each frame is 1x1 tile (8x8 pixels) — half the size of the tank shell explosion at sprite_tank_shell_explosion. This appears to be an early prototype that was replaced with the larger 16x16 pixel version for better visibility.
unused-explosion
Sprite data: sprite_unused_explosion.