The SLOLS has been made by Zeriab.Thanks goes to RMXP for making this possibleCredits should be given.Features

The purpose of SLOLS is to provide the player an opportunity to interact with something during loading sequences. I think the loading time will not seem as long as normally if the player as something to do while the program is loading.They don't experience the time it takes to load as bad even though the script reduced the loading speed.In the game itself the principle is to collect dots by moving a bigger dot into them. There is no time limit. There is no way to die or get stuck or etc. Steering is done by the arrow keys.When the loading is finished a sound will be played and visual aids will be used to let the player know that the loading is finished.The player can then continue by pressing a trigger key (fx. ENTER)There is no need to press enter. The player can play the game as long as he or she wants unless the script loaded does something that changes this.Screenshots

Demo

The demo has been combined with my Letter Ninigame to show a example of use.If the Letter Minigame is used credits mentionen in the Letter Minigame should be given.

You must have these pictures in your graphics\pictures folder or the arrow keys shown on the picture will be missing:

The Script:This script used the global variable $loader.It can run without $loader being initialized in which case the script considers the loading as done.To use $loader you must set it to a Thread. The syntax is:Thread.new( [arg]* ) {| args | block } -> aThread (Reference)

An example:$loader = Thread.new { MyClass.new }

To get the SLOLS scene use this syntax:$scene = Scene_SLOLS.new(scene=Scene_Map.new)scene will be used to set the scene that comes after Scene_SLOLS. The scene to be used after finished loading and player pressing trigger.

$scene = Scene_SLOLS.new# or$scene = Scene_SLOLS.new(Scene_Map.new)The script will store the amount of dots in the variable number specified by Cheese_Variable in Scene_SLOLS. (Near top)There also are the Margin (in pixels) and the Border_Thickness (in pixels).Changing these may break the design. The info bar with the instructions is a bit fragile.Compatibility

Should be independent which increases compatibility.Credits and Thanks

I would like to thank everyone using their time to try and use SLOLS.I would like to thank everyone reading this topic.Thanks.Author's Notes

I don't recommend letting the script being 'loaded' change the $scene as makes the SLOLS stop rather suddenly from my point of view (Players position).

Thanks for notifying me, it has been fixed ^^For some reasons the links to the picture of the arrows works while the link to the text file on the same server does not work -_-Anyway, it should work now

class Scene_SLOLS # The variable the number of dots collected will be stored Cheese_Variable = 25 # The size of the margin in pixels Margin = 10 # The thickness of the border in pixels Border_Thickness = 3

#-------------------------------------------------------------------------- # * Make Cheese # --------------------- # Generates a pointer to a place where a cheese will be at least 3 pixels # away from the player #-------------------------------------------------------------------------- def make_cheese result = [] # Total size. (Sum of player size and cheese size) size = Size + Cheese_Size

#-------------------------------------------------------------------------- # * Delete Cheese # i : The index on the cheese # -------------------- # Deletes the cheese by first drawing it black and then removing the cheese # from @cheese. #-------------------------------------------------------------------------- def delete_cheese(i) draw_cheese(i, Color.new(0,0,0,0)) @cheese.delete_at(i) end

# Checks if the player gets any cheese array = check_player if array.size > 0 # Removes all the cheese for i in array # Cheese counters $game_variables[@cheese_variable] += 1 @cheese_amount += 1 # Deletes the old cheese delete_cheese(i) # Creates a new one @cheese.push(make_cheese)

# Might create another one if @cheese.size < Max_Cheese_Amount # Creates an extra cheese if enough cheese have been caught if @cheese_amount > @cheese.size * @cheese.size + 1 # Creates a new one @cheese.push(make_cheese) end end end end

# Draws the cheese for i in 0...@cheese.size draw_cheese(i, Color.new(10,200,20,255)) end

# Makes sure the trail isn't too short while @player_trail.size < Trail_Length # Adds the player positions into the trail @player_trail.push([@player_x,@player_y]) end

# If UP Is Pressed if Input.trigger?(Input::UP) @player_dir = 8 unless @player_dir == 2 end # If DOWN Is Pressed if Input.trigger?(Input::DOWN) @player_dir = 2 unless @player_dir == 8 end # If LEFT Is Pressed if Input.trigger?(Input::LEFT) @player_dir = 4 unless @player_dir == 6 end # If RIGHT Is Pressed if Input.trigger?(Input::RIGHT) @player_dir = 6 unless @player_dir == 4 end

class Scene_SLOLS # The variable the number of dots collected will be stored Cheese_Variable = 25 # The size of the margin in pixels Margin = 10 # The thickness of the border in pixels Border_Thickness = 3

#-------------------------------------------------------------------------- # * Make Cheese # --------------------- # Generates a pointer to a place where a cheese will be at least 3 pixels # away from the player #-------------------------------------------------------------------------- def make_cheese result = [] # Total size. (Sum of player size and cheese size) size = Size + Cheese_Size

#-------------------------------------------------------------------------- # * Delete Cheese # i : The index on the cheese # -------------------- # Deletes the cheese by first drawing it black and then removing the cheese # from @cheese. #-------------------------------------------------------------------------- def delete_cheese(i) draw_cheese(i, Color.new(0,0,0,0)) @cheese.delete_at(i) end

# Checks if the player gets any cheese array = check_player if array.size > 0 # Removes all the cheese for i in array # Cheese counters $game_variables[@cheese_variable] += 1 @cheese_amount += 1 # Deletes the old cheese delete_cheese(i) # Creates a new one @cheese.push(make_cheese)

# Might create another one if @cheese.size < Max_Cheese_Amount # Creates an extra cheese if enough cheese have been caught if @cheese_amount > @cheese.size * @cheese.size + 1 # Creates a new one @cheese.push(make_cheese) end end end end

# Draws the cheese for i in 0...@cheese.size draw_cheese(i, Color.new(10,200,20,255)) end

# Makes sure the trail isn't too short while @player_trail.size < Trail_Length # Adds the player positions into the trail @player_trail.push([@player_x,@player_y]) end

# If UP Is Pressed if Input.trigger?(Input::UP) @player_dir = 8 unless @player_dir == 2 end # If DOWN Is Pressed if Input.trigger?(Input::DOWN) @player_dir = 2 unless @player_dir == 8 end # If LEFT Is Pressed if Input.trigger?(Input::LEFT) @player_dir = 4 unless @player_dir == 6 end # If RIGHT Is Pressed if Input.trigger?(Input::RIGHT) @player_dir = 6 unless @player_dir == 4 end