Skip to content

bottom_characters

Anthony Samms edited this page Jun 2, 2026 · 1 revision

Animates two characters that slide up from the bottom of the result screen. Reacts to the clear state with different poses and flower effects. Used by player in single-player mode (hidden in 2P layout).

BottomCharacters

Members

Member Type Description
move_up MoveAnimation* Entry slide-up (slot 7)
move_down MoveAnimation* Initial settle-down after entry (slot 8); completion signals is_finished()
bounce_up MoveAnimation* Looping bounce upward on clear (slot 9)
bounce_down MoveAnimation* Looping bounce downward on clear (slot 10)
move_center MoveAnimation* Center character slide-in on clear (slot 11)
c_bounce_up MoveAnimation* Looping bounce for the center character — up (slot 12)
c_bounce_down MoveAnimation* Looping bounce for the center character — down (slot 13)
flower_up MoveAnimation* Flower petals rise animation (slot 14)
state optional<ResultState> Current clear state; set by the first update() call
flower_index int Current flower texture frame (0 → 1 → 2 over ~750 ms)
flower_start optional<double> Timestamp when the flower animation began
chara_0_index int Frame index for character 0 (0 = idle, 1 = clear, 2 = fail)
chara_1_index int Frame index for character 1

Methods

void start();

Starts move_up, move_down, c_bounce_up, and c_bounce_down. Called by player the moment FadeIn completes.

void update(ResultState state);

Sets the character frame indices based on state. On CLEAR or RAINBOW: starts the bounce and center-character animations once, begins the flower animation, and advances flower_index through frames 0→1→2 at ~333 ms and ~449 ms after the flower starts. All move/bounce animations are advanced and the clear bounces loop by restarting when bounce_down or c_bounce_down finish.

void draw();

Calls draw_flowers(), then:

  • On RAINBOW: draws BOTTOM::CHARA_CENTER displaced by the center-character bounce offset.
  • Draws BOTTOM::CHARA_0 and BOTTOM::CHARA_1 at a combined vertical offset from all four move/bounce animations.
bool is_finished();

Returns true when move_down->is_finished. player watches this to decide when to create ResultCrown.

Clone this wiki locally