-
Notifications
You must be signed in to change notification settings - Fork 6
note_arc
A NoteArc draws a Bezier curve arc that connects a special note (drumroll, balloon, or kusudama) from its hit position back along the note lane, giving the player a visual path to follow. player keeps active instances in draw_arc_list and removes them when is_finished() returns true.
NoteArc(NoteType note_type, double current_ms, PlayerNum player_num, bool big, bool is_balloon,
float start_x = 0, float start_y = 0);| Parameter | Description |
|---|---|
note_type |
Note type; selects the arc colour |
current_ms |
Song timestamp when the arc begins |
player_num |
Which player; affects the arc's screen position |
big |
Whether the note is a big note (thicker arc) |
is_balloon |
Whether this is a balloon arc (different shape) |
start_x/y |
Optional custom start position for the arc origin |
| Member | Type | Description |
|---|---|---|
note_type |
NoteType |
Type of note this arc belongs to |
is_big |
bool |
Whether this is a big-note arc |
| Member | Type | Description |
|---|---|---|
is_balloon |
bool |
Balloon arcs use a different curve shape |
arc_points |
int |
Number of points sampled along the Bezier curve |
arc_duration |
int |
Duration over which the arc travels (ms) |
current_progress |
float |
Normalised progress (0–1) along the arc |
start_ms |
double |
Timestamp when the arc started |
start_x/y |
float |
Arc origin (note head position) |
end_x/y |
float |
Arc destination (judgment zone) |
control_x/y |
float |
Bezier control point; determines the curve shape |
arc_points_cache |
const vector<pair<int,int>>* |
Pointer into the static cache of pre-computed pixel coordinates |
_arc_points_cache |
static unordered_map<CacheKey, ...> |
Class-level cache keyed by arc geometry; avoids re-computation |
A struct that uniquely identifies an arc by its six geometry floats and point count. It is hashed and compared via CacheKeyHash and operator== for use in the static cache.
void update(double current_ms);Advances current_progress based on elapsed time since start_ms.
void draw(float y, ray::Shader mask_shader);Iterates the cached Bezier points and draws each segment of the arc. The mask_shader is applied for rainbow balloon arcs.
bool is_finished() const;Returns true when current_progress >= 1.0.
Building
libs
- animation
- audio
- config
- filesystem
- global_data
- input
- logging
- ray
- scores
- screen
- script
- song_parser
- text
- texture
- video
- webcam
libs/parsers
objects
objects/game
- player
- background
- gauge
- judgment
- combo
- branch_indicator
- ending_animations
- gogo_time
- fireworks
- song_info
- transition
- result_transition
- judge_counter
- score_counter
- score_counter_animation
- balloon_counter
- drumroll_counter
- kusudama_counter
- drum_hit_effect
- lane_hit_effect
- gauge_hit_effect
- combo_announce
- note_arc
objects/global
objects/title
objects/entry
objects/settings
objects/result
objects/song_select
- player
- navigator
- box_base
- box_song
- box_folder
- neiro
- modifier
- ura_switch
- diff_sort
- search_box
- dan_transition
- genre_bg
- score_history
- song_select_script
scenes