Less redundant array resizing on slides

This commit is contained in:
Luke Hubmayer-Werner 2020-12-29 18:40:20 +10:30
parent aa6ded4c11
commit b59abba1b6
2 changed files with 13 additions and 13 deletions

View File

@ -96,15 +96,17 @@ const COLOR_STAR := Color(0, 0, 1, 1)
const COLOR_DOUBLE := Color(1, 1, 0, 1) # When two (or more in master) hit events coincide const COLOR_DOUBLE := Color(1, 1, 0, 1) # When two (or more in master) hit events coincide
const COLOR_DOUBLE_MISS := Color(0.33, 0.33, 0, 1) const COLOR_DOUBLE_MISS := Color(0.33, 0.33, 0, 1)
const COLOR_TEXT := Color(1, 1, 1, 1) const COLOR_TEXT := Color(1, 1, 1, 1)
const COLOR_SLIDE := Color(0.65, 0.65, 1.0, 1.0)
const COLOR_DOUBLE_SLIDE := Color(1.0, 1.0, 0.35, 1.0)
const COLOR_DIFFICULTY := PoolColorArray([ # Background, foreground for each const COLOR_DIFFICULTY := PoolColorArray([ # Background, foreground for each
Color(0.435, 0.333, 1.000), Color(1.0, 1.0, 1.0), Color(0.435, 0.333, 1.000), Color.white,
Color(0.150, 1.000, 0.275), Color(1.0, 1.0, 1.0), Color(0.150, 1.000, 0.275), Color.white,
Color(0.973, 0.718, 0.039), Color(1.0, 1.0, 1.0), Color(0.973, 0.718, 0.039), Color.white,
Color(1.000, 0.150, 0.150), Color(1.0, 1.0, 1.0), Color(1.000, 0.150, 0.150), Color.white,
Color(0.761, 0.271, 0.902), Color(1.0, 1.0, 1.0), Color(0.761, 0.271, 0.902), Color.white,
Color(1.0, 1.0, 1.0), Color(0.737, 0.188, 0.894), Color(1.0, 1.0, 1.0), Color(0.737, 0.188, 0.894),
Color(0.000, 0.000, 1.000), Color(1.0, 1.0, 1.0), Color(0.000, 0.000, 1.000), Color.white,
]) ])
const COLOR_ARRAY_TAP := PoolColorArray([COLOR_TAP, COLOR_TAP, COLOR_TAP, COLOR_TAP]) const COLOR_ARRAY_TAP := PoolColorArray([COLOR_TAP, COLOR_TAP, COLOR_TAP, COLOR_TAP])

View File

@ -178,19 +178,17 @@ func make_slide_trail_mesh(note) -> ArrayMesh:
var uvs := PoolVector2Array() var uvs := PoolVector2Array()
var colors := PoolColorArray() var colors := PoolColorArray()
var size := GameTheme.sprite_size2 var size := GameTheme.sprite_size2
var color := Color(0.67, 0.67, 1.0) var color := GameTheme.COLOR_DOUBLE_SLIDE if note.double_hit else GameTheme.COLOR_SLIDE
if note.double_hit:
color = Color(1.0, 1.0, 0.35)
# First we need to determine how many arrows to leave. # First we need to determine how many arrows to leave.
var trail_length : int = int(floor(note.get_slide_length() * slide_arrows_per_unit_length)) var trail_length : int = int(floor(note.get_slide_length() * slide_arrows_per_unit_length))
vertices.resize(3*trail_length) vertices.resize(3*trail_length)
# uvs.resize(3*trail_length) uvs.resize(3*trail_length)
colors.resize(3*trail_length) colors.resize(3*trail_length)
for i in trail_length: for i in trail_length:
uvs.append_array(GameTheme.UV_ARRAY_SLIDE_ARROW if i%3 else GameTheme.UV_ARRAY_SLIDE_ARROW2) var u = GameTheme.UV_ARRAY_SLIDE_ARROW if i%3 else GameTheme.UV_ARRAY_SLIDE_ARROW2
for j in 3: for j in 3:
# uvs[i*3+j] = GameTheme.UV_ARRAY_SLIDE_ARROW[j] if i%2 else GameTheme.UV_ARRAY_SLIDE_ARROW2[j] uvs[i*3+j] = u[j]
colors[i*3+j] = Color(color.r, color.g, color.b, (1.0+float(i))/float(trail_length)) colors[i*3+j] = Color(color.r, color.g, color.b, (1.0+float(i))/float(trail_length))
match note.slide_type: match note.slide_type:
@ -331,7 +329,7 @@ func touchbutton_released(col):
check_hold_release(col) check_hold_release(col)
#---------------------------------------------------------------------------------------------------------------------------------------------- #----------------------------------------------------------------------------------------------------------------------------------------------
var arr_div := Vector3(2.0, float(Rules.COLS), TAU) const arr_div := Vector3(2.0, float(Rules.COLS), TAU)
func _draw(): func _draw():
var mesh := ArrayMesh.new() var mesh := ArrayMesh.new()
var noteline_data : Image = noteline_array_image.get_rect(Rect2(0, 0, 16, 16)) var noteline_data : Image = noteline_array_image.get_rect(Rect2(0, 0, 16, 16))