I have an array and want to periodically perform different functions on different members. My array is for a music player node, and I want to dynamically turn the different layers up or down. The music player itself works perfectly, but implementing the different functions has proven a bit... Cumbersome. The code I have at the moment actually does the job just fine - but, as you'll see, it is extremely redundant. Is there a more efficient way of doing this?
func _process(delta):
intensity = (float(drone_nests.drones.size())/drone_nests.Max_Drones)*4
intensity = floor(intensity)+1
score_bar.text = str("SCORE: " + str(floor(score)))
play_arrangement(intensity)
...
func play_arrangement(num):
if num == 1 && arr != 1:
arr = 1
##--FADE-INS--##
music_a._fadeIn(0)
music_a._fadeIn(1)
##--FADE-OUTS--##
music_a._fadeOut(2)
music_a._fadeOut(3)
music_a._fadeOut(4)
music_a._fadeOut(5)
music_a._fadeOut(6)
music_a._fadeOut(7)
music_a._fadeOut(8)
music_a._fadeOut(9)
music_a._fadeOut(10)
music_a._fadeOut(11)
if num == 2 && arr != 2:
arr = 2
##--FADE-INS--##
music_a._fadeIn(0)
music_a._fadeIn(1)
music_a._fadeIn(2)
music_a._fadeIn(3)
music_a._fadeIn(4)
##--FADE-OUTS--##
music_a._fadeOut(5)
music_a._fadeOut(6)
music_a._fadeOut(7)
music_a._fadeOut(8)
music_a._fadeOut(9)
music_a._fadeOut(10)
music_a._fadeOut(11)
if num == 3 && arr != 3:
arr = 3
##--FADE-INS--##
music_a._fadeIn(0)
music_a._fadeIn(1)
music_a._fadeIn(2)
music_a._fadeIn(3)
music_a._fadeIn(4)
music_a._fadeIn(5)
music_a._fadeIn(6)
music_a._fadeIn(7)
music_a._fadeIn(8)
##--FADE-OUTS--##
music_a._fadeOut(9)
music_a._fadeOut(10)
music_a._fadeOut(11)
if num == 4 && arr != 4:
arr = 4
##--FADE-INS--##
music_a._fadeIn(0)
music_a._fadeIn(1)
music_a._fadeIn(2)
music_a._fadeIn(3)
music_a._fadeIn(4)
music_a._fadeIn(5)
music_a._fadeIn(6)
music_a._fadeIn(7)
music_a._fadeIn(8)
music_a._fadeIn(9)
music_a._fadeIn(10)
music_a._fadeIn(11)
So, the principle is, the more drones there are in the level (up to the max_drones count), the more layers of music come in. My original plan was to have all 12 layers move independently, but as you can see, doing that would require 8 more of these monstrous code blocks... Unless there is a simpler way of doing this?