RMXP SDK 1.x, 2.x와 RMVX를 참조하여 대충 만들어 본 Scene_Base입니다. (개인적으로는 오브젝트 자동 업데이트와 자동처리가 있는 SDK 2.x의 Scene_Base가 쓰기 편합니다만)
#Simple Scene_Base
class Scene_Base
#--------------------------------------------------------------------------
# * Main Processing
#--------------------------------------------------------------------------
def main
main_variable
main_spriteset
main_window
main_audio
main_transition
# Main loop
loop do
main_loop
break if main_scenechange?
end
main_pre_terminate
# Prepare for transition
Graphics.freeze
main_dispose
main_terminate
end
#--------------------------------------------------------------------------
# * Main Processing: Variable
#--------------------------------------------------------------------------
def main_variable ;end
#--------------------------------------------------------------------------
# * Main Processing: Spriteset
#--------------------------------------------------------------------------
def main_spriteset ;end
#--------------------------------------------------------------------------
# * Main Processing: Windows
#--------------------------------------------------------------------------
def main_window ;end
#--------------------------------------------------------------------------
# * Main Processing: Audio
#--------------------------------------------------------------------------
def main_audio ;end
#--------------------------------------------------------------------------
# * Main Processing: Transition
#--------------------------------------------------------------------------
def main_transition
# Execute transition
Graphics.transition
end
#--------------------------------------------------------------------------
# * Main Loop
#--------------------------------------------------------------------------
def main_loop
# Update game screen
Graphics.update
# Update input information
Input.update
# Frame update
update
end
#--------------------------------------------------------------------------
# * Scene Change
#--------------------------------------------------------------------------
def main_scenechange?
# Abort loop if screen is changed
return $scene != self
end
#--------------------------------------------------------------------------
# * Main Processing: Pre-termination
#--------------------------------------------------------------------------
def main_pre_terminate ;end
#--------------------------------------------------------------------------
# * Main Processing: Object Disposing
#--------------------------------------------------------------------------
def main_dispose ;end
#--------------------------------------------------------------------------
# * Main Processing: End
#--------------------------------------------------------------------------
def main_terminate ;end
end
**사용법:
Scene_Base를 사용하는 스크립트는 class Scene_(이름) <Scene_Base로 현재 작성하는 클래스가 Scene_Base를 상속받음을 명시해야 합니다(상속이 맞나 모르겠네.... 배운 지 오래되어서).
그리고 (상속받은)상위 클래스에 정의된 것을 그대로 쓰고 싶다면 super를 써 준다든가.... 그런 식으로 하면 됩니다.
Scene_Base를 사용하는 스크립트는 class Scene_(이름) <Scene_Base로 현재 작성하는 클래스가 Scene_Base를 상속받음을 명시해야 합니다(상속이 맞나 모르겠네.... 배운 지 오래되어서).
그리고 (상속받은)상위 클래스에 정의된 것을 그대로 쓰고 싶다면 super를 써 준다든가.... 그런 식으로 하면 됩니다.