#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:= # ■ Scene_Base [RMXP] # ■ Author: Bigace360 # ■ Date: Feb 20, 2012 # ■ Version: 1.1 #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:= # This script was designed to act as a parent class for all scenes. It # provides 2 major purposes : # # 1) Give the Main Processing Method a Common Structure # 2) Automatically Update & Dispose All Spritesets, Sprites, Windows or # any other instance variable that responds to :update or :dispose # # This is a script for developers, not non-scripters. If you do not # plan to create scenes in RMXP, this isn't needed. #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:= class Scene_Base #-------------------------------------------------------------------------- # * Main Processing #-------------------------------------------------------------------------- def main start # Start processing post_start # Post-start processing loop {main_loop; break if main_break?} # Scene Loop move_windows # Move windows process terminate # Termination processing Graphics.update # Update game screen end #-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- def start create_main_viewport end #-------------------------------------------------------------------------- # * Post-Start Processing #-------------------------------------------------------------------------- def post_start perform_transition Input.update end #-------------------------------------------------------------------------- # * Execute Transition #-------------------------------------------------------------------------- def perform_transition Graphics.transition(transition_speed) end #-------------------------------------------------------------------------- # * Get Transition Speed #-------------------------------------------------------------------------- def transition_speed return 10 end #-------------------------------------------------------------------------- # * Main Processing : Loop #-------------------------------------------------------------------------- def main_loop Graphics.update Input.update update_all_windows update end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update; end #-------------------------------------------------------------------------- # * Main Processing : Break Loop Test #-------------------------------------------------------------------------- def main_break? return $scene != self end #-------------------------------------------------------------------------- # * Move windows process #-------------------------------------------------------------------------- def move_windows; end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- def terminate Graphics.freeze dispose_all_windows dispose_menu_layout dispose_main_viewport end #-------------------------------------------------------------------------- # * Create Graphic Layout for Menu Screen #-------------------------------------------------------------------------- def create_menu_layout @menulay = Sprite.new @menulay.bitmap = Bitmap.new(1, 1) @menulay.z = 100 update_menu_layout end #-------------------------------------------------------------------------- # * Dispose Graphic Layout for Menu Screen #-------------------------------------------------------------------------- def dispose_menu_layout @menulay.dispose end #-------------------------------------------------------------------------- # * Update Graphic Layout for Menu Screen #-------------------------------------------------------------------------- def update_menu_layout; end #-------------------------------------------------------------------------- # * Create Viewport #-------------------------------------------------------------------------- def create_main_viewport @viewport = Viewport.new(0, 0, 640, 480) @viewport.z = 200 end #-------------------------------------------------------------------------- # * Free Viewport #-------------------------------------------------------------------------- def dispose_main_viewport @viewport.dispose end #-------------------------------------------------------------------------- # * Update All Windows #-------------------------------------------------------------------------- def update_all_windows instance_variables.each do |varname| ivar = instance_variable_get(varname) ivar.update if ivar.is_a?(Window) end end #-------------------------------------------------------------------------- # * Destroy All Windows #-------------------------------------------------------------------------- def dispose_all_windows instance_variables.each do |varname| ivar = instance_variable_get(varname) ivar.dispose if ivar.is_a?(Window) end end #-------------------------------------------------------------------------- # * Fade Out All Sounds #-------------------------------------------------------------------------- def fadeout_all(time = 1000) $game_system.se_play($data_system.decision_se) Audio.bgm_fade(time) Audio.bgs_fade(time) Audio.me_fade(time) end end