I have a fairly easy way to make effective animations, and even the better menu system which don't dispose the main menu before bringing in submenus. It's my layering Scene_Base, and I think it should be fair for anyone to use it to make animating their menus easier.
It's basically a rewrite of the SDK::Scene_Base class, so any SDK-compliant scripts (which I'm sure would get better scores anyway) will work with it. The animation functions are like so:
def main_in_animation # This is called every frame until it's finished.
@command_window.x += 10 if @command_window.x < 0
end
def main_in_animation_done? # The animation is done when this returns true
return @command_window.x == 0
end
def main_in # This is called only once when the animation finishes
@command_window.active = true #not actually necessary, but that's the sort of thing that goes here.
super # Be sure NOT to forget this line, it's important
end
Out animations work that same, but with main_out_ instead of main_in_.
To make a submenu appear on top of the main menu, you replace commands like $scene = Scene_Skill.new(@status_window.index) with new_layer(Scene_Skill, @status_window.index). This works best if you change all references to $scene into either new_scene(scene_name, *args) or new_layer(scene_name, *args).
I'll help with any problems contestants have.
I'm modifying a very nice, but old and convoluted code for this, and one thing I'm doing to make it simpler is breaking up what was a massive Scene_Menu into its various sub-scenes and calling them as layers. The animations are greatly simplified as well.