Auteur: Yukihiro matsumoto
#============================================
# ¡ Scene_Map
#----------------------------------------------
# @ƒ}ƒbƒv‰æ–ʂ̈—‚ðs‚¤ƒNƒ‰ƒX‚Å‚·B
#============================================
class Scene_Map
#------------------------------------------
# œ ƒƒCƒ“ˆ—
#------------------------------------------
def main
# ƒXƒvƒ‰ƒCƒgƒZƒbƒg‚ðì¬
@spriteset = Spriteset_Map.new
# ƒƒbƒZ[ƒWƒEƒBƒ“ƒhƒE‚ðì¬
@message_window = Window_Message.new
# ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“ŽÀs
Graphics.transition
# ƒƒCƒ“ƒ‹[ƒv
loop do
# ƒQ[ƒ€‰æ–Ê‚ðXV
Graphics.update
# “ü—Íî•ñ‚ðXV
Input.update
# ƒtƒŒ[ƒ€XV
update
# ‰æ–Ê‚ªØ‚è‘Ö‚í‚Á‚½‚烋[ƒv‚ð’†’f
if $scene != self
break
end
end
# ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“€”õ
Graphics.freeze
# ƒXƒvƒ‰ƒCƒgƒZƒbƒg‚ð‰ð•ú
@spriteset.dispose
# ƒƒbƒZ[ƒWƒEƒBƒ“ƒhƒE‚ð‰ð•ú
@message_window.dispose
# ƒ^ƒCƒgƒ‹‰æ–Ê‚ÉØ‚è‘Ö‚¦’†‚Ìê‡
if $scene.is_a?(Scene_Title)
# ‰æ–Ê‚ðƒtƒF[ƒhƒAƒEƒg
Graphics.transition
Graphics.freeze
end
end
#------------------------------------------
# œ ƒtƒŒ[ƒ€XV
#------------------------------------------
def update
# ƒ‹[ƒv
loop do
# ƒ}ƒbƒvAƒCƒ“ƒ^ƒvƒŠƒ^AƒvƒŒƒCƒ„[‚̇‚ÉXV
# (‚±‚ÌXV‡˜‚ÍAƒCƒxƒ“ƒg‚ðŽÀs‚·‚éðŒ‚ª–ž‚½‚³‚ê‚Ä‚¢‚邯‚«‚É
# ƒvƒŒƒCƒ„[‚ɈêuˆÚ“®‚·‚é‹@‰ï‚ð—^‚¦‚È‚¢‚Ȃǂ̗—R‚Åd—v)
$game_map.update
$game_system.map_interpreter.update
$game_player.update
# ƒVƒXƒeƒ€ (ƒ^ƒCƒ}[)A‰æ–Ê‚ðXV
$game_system.update
$game_screen.update
# ƒvƒŒƒCƒ„[‚Ìꊈړ®’†‚łȂ¯‚ê‚΃‹[ƒv‚ð’†’f
unless $game_temp.player_transferring
break
end
# ꊈړ®‚ðŽÀs
transfer_player
# ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“ˆ—’†‚Ìê‡Aƒ‹[ƒv‚ð’†’f
if $game_temp.transition_processing
break
end
end
# ƒXƒvƒ‰ƒCƒgƒZƒbƒg‚ðXV
@spriteset.update
# ƒƒbƒZ[ƒWƒEƒBƒ“ƒhƒE‚ðXV
@message_window.update
# ƒQ[ƒ€ƒI[ƒo[‚Ìê‡
if $game_temp.gameover
# ƒQ[ƒ€ƒI[ƒo[‰æ–Ê‚ÉØ‚è‘Ö‚¦
$scene = Scene_Gameover.new
return
end
# ƒ^ƒCƒgƒ‹‰æ–ʂɖ߂·ê‡
if $game_temp.to_title
# ƒ^ƒCƒgƒ‹‰æ–Ê‚ÉØ‚è‘Ö‚¦
$scene = Scene_Title.new
return
end
# ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“ˆ—’†‚Ìê‡
if $game_temp.transition_processing
# ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“ˆ—’†ƒtƒ‰ƒO‚ðƒNƒŠƒA
$game_temp.transition_processing = false
# ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“ŽÀs
if $game_temp.transition_name == ""
Graphics.transition(20)
else
Graphics.transition(40, "Graphics/Transitions/" +
$game_temp.transition_name)
end
end
# ƒƒbƒZ[ƒWƒEƒBƒ“ƒhƒE•ަ’†‚Ìê‡
if $game_temp.message_window_showing
return
end
# ƒGƒ“ƒJƒEƒ“ƒg ƒJƒEƒ“ƒg‚ª 0 ‚ÅAƒGƒ“ƒJƒEƒ“ƒgƒŠƒXƒg‚ª‹ó‚ł͂Ȃ¢ê‡
if $game_player.encounter_count == 0 and $game_map.encounter_list != []
# ƒCƒxƒ“ƒgŽÀs’†‚©ƒGƒ“ƒJƒEƒ“ƒg‹ÖŽ~’†‚łȂ¯‚ê‚Î
unless $game_system.map_interpreter.running? or
$game_system.encounter_disabled
# ƒgƒ‹[ƒv‚ðŒˆ’è
n = rand($game_map.encounter_list.size)
troop_id = $game_map.encounter_list[n]
# ƒgƒ‹[ƒv‚ª—LŒø‚È‚ç
if $data_troops[troop_id] != nil
# ƒoƒgƒ‹ŒÄ‚Ño‚µƒtƒ‰ƒO‚ðƒZƒbƒg
$game_temp.battle_calling = true
$game_temp.battle_troop_id = troop_id
$game_temp.battle_can_escape = true
$game_temp.battle_can_lose = false
$game_temp.battle_proc = nil
end
end
end
# B ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽê‡
if Input.trigger?(Input::B)
# ƒCƒxƒ“ƒgŽÀs’†‚©ƒƒjƒ…[‹ÖŽ~’†‚łȂ¯‚ê‚Î
unless $game_system.map_interpreter.running? or
$game_system.menu_disabled
# ƒƒjƒ…[ŒÄ‚Ño‚µƒtƒ‰ƒO‚Æ SE ‰‰‘tƒtƒ‰ƒO‚ðƒZƒbƒg
$game_temp.menu_calling = true
$game_temp.menu_beep = true
end
end
# ƒfƒoƒbƒOƒ‚[ƒh‚ª ON ‚©‚ F9 ƒL[‚ª‰Ÿ‚³‚ê‚Ä‚¢‚éê‡
if $DEBUG and Input.press?(Input::F9)
# ƒfƒoƒbƒOŒÄ‚Ño‚µƒtƒ‰ƒO‚ðƒZƒbƒg
$game_temp.debug_calling = true
end
# ƒvƒŒƒCƒ„[‚̈ړ®’†‚ł͂Ȃ¢ê‡
unless $game_player.moving?
# ŠeŽí‰æ–ʂ̌ĂÑo‚µ‚ðŽÀs
if $game_temp.battle_calling
call_battle
elsif $game_temp.shop_calling
call_shop
elsif $game_temp.name_calling
call_name
elsif $game_temp.menu_calling
call_menu
elsif $game_temp.save_calling
call_save
elsif $game_temp.debug_calling
call_debug
end
end
end
#------------------------------------------
# œ ƒoƒgƒ‹‚̌ĂÑo‚µ
#------------------------------------------
def call_battle
# ƒoƒgƒ‹ŒÄ‚Ño‚µƒtƒ‰ƒO‚ðƒNƒŠƒA
$game_temp.battle_calling = false
# ƒƒjƒ…[ŒÄ‚Ño‚µƒtƒ‰ƒO‚ðƒNƒŠƒA
$game_temp.menu_calling = false
$game_temp.menu_beep = false
# ƒGƒ“ƒJƒEƒ“ƒg ƒJƒEƒ“ƒg‚ðì¬
$game_player.make_encounter_count
# ƒ}ƒbƒv BGM ‚ð‹L‰¯‚µABGM ‚ð’âŽ~
$game_temp.map_bgm = $game_system.playing_bgm
$game_system.bgm_stop
# ƒoƒgƒ‹ŠJŽn SE ‚ð‰‰‘t
$game_system.se_play($data_system.battle_start_se)
# ƒoƒgƒ‹ BGM ‚ð‰‰‘t
$game_system.bgm_play($game_system.battle_bgm)
# ƒvƒŒƒCƒ„[‚ÌŽp¨‚ð‹¸³
$game_player.straighten
# ƒoƒgƒ‹‰æ–Ê‚ÉØ‚è‘Ö‚¦
$scene = Scene_Battle.new
end
#------------------------------------------
# œ ƒVƒ‡ƒbƒv‚̌ĂÑo‚µ
#------------------------------------------
def call_shop
# ƒVƒ‡ƒbƒvŒÄ‚Ño‚µƒtƒ‰ƒO‚ðƒNƒŠƒA
$game_temp.shop_calling = false
# ƒvƒŒƒCƒ„[‚ÌŽp¨‚ð‹¸³
$game_player.straighten
# ƒVƒ‡ƒbƒv‰æ–Ê‚ÉØ‚è‘Ö‚¦
$scene = Scene_Shop.new
end
#------------------------------------------
# œ –¼‘O“ü—͂̌ĂÑo‚µ
#------------------------------------------
def call_name
# –¼‘O“ü—͌ĂÑo‚µƒtƒ‰ƒO‚ðƒNƒŠƒA
$game_temp.name_calling = false
# ƒvƒŒƒCƒ„[‚ÌŽp¨‚ð‹¸³
$game_player.straighten
# –¼‘O“ü—͉æ–Ê‚ÉØ‚è‘Ö‚¦
$scene = Scene_Name.new
end
#------------------------------------------
# œ ƒƒjƒ…[‚̌ĂÑo‚µ
#------------------------------------------
def call_menu
# ƒƒjƒ…[ŒÄ‚Ño‚µƒtƒ‰ƒO‚ðƒNƒŠƒA
$game_temp.menu_calling = false
# ƒƒjƒ…[ SE ‰‰‘tƒtƒ‰ƒO‚ªƒZƒbƒg‚³‚ê‚Ä‚¢‚éê‡
if $game_temp.menu_beep
# Œˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# ƒƒjƒ…[ SE ‰‰‘tƒtƒ‰ƒO‚ðƒNƒŠƒA
$game_temp.menu_beep = false
end
# ƒvƒŒƒCƒ„[‚ÌŽp¨‚ð‹¸³
$game_player.straighten
# ƒƒjƒ…[‰æ–Ê‚ÉØ‚è‘Ö‚¦
$scene = Scene_Menu.new
end
#------------------------------------------
# œ ƒZ[ƒu‚̌ĂÑo‚µ
#------------------------------------------
def call_save
# ƒvƒŒƒCƒ„[‚ÌŽp¨‚ð‹¸³
$game_player.straighten
# ƒZ[ƒu‰æ–Ê‚ÉØ‚è‘Ö‚¦
$scene = Scene_Save.new
end
#------------------------------------------
# œ ƒfƒoƒbƒO‚̌ĂÑo‚µ
#------------------------------------------
def call_debug
# ƒfƒoƒbƒOŒÄ‚Ño‚µƒtƒ‰ƒO‚ðƒNƒŠƒA
$game_temp.debug_calling = false
# Œˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se)
# ƒvƒŒƒCƒ„[‚ÌŽp¨‚ð‹¸³
$game_player.straighten
# ƒfƒoƒbƒO‰æ–Ê‚ÉØ‚è‘Ö‚¦
$scene = Scene_Debug.new
end
#------------------------------------------
# œ ƒvƒŒƒCƒ„[‚Ìꊈړ®
#------------------------------------------
def transfer_player
# ƒvƒŒƒCƒ„[ꊈړ®ƒtƒ‰ƒO‚ðƒNƒŠƒA
$game_temp.player_transferring = false
# ˆÚ“®æ‚ªŒ»Ý‚̃}ƒbƒv‚ƈقȂéê‡
if $game_map.map_id != $game_temp.player_new_map_id
# V‚µ‚¢ƒ}ƒbƒv‚ðƒZƒbƒgƒAƒbƒv
$game_map.setup($game_temp.player_new_map_id)
end
# ƒvƒŒƒCƒ„[‚̈ʒu‚ðÝ’è
$game_player.moveto($game_temp.player_new_x, $game_temp.player_new_y)
# ƒvƒŒƒCƒ„[‚ÌŒü‚«‚ðÝ’è
case $game_temp.player_new_direction
when 2 # ‰º
$game_player.turn_down
when 4 # ¶
$game_player.turn_left
when 6 # ‰E
$game_player.turn_right
when 8 # ã
$game_player.turn_up
end
# ƒvƒŒƒCƒ„[‚ÌŽp¨‚ð‹¸³
$game_player.straighten
# ƒ}ƒbƒv‚ðXV (•À—ñƒCƒxƒ“ƒgŽÀs)
$game_map.update
# ƒXƒvƒ‰ƒCƒgƒZƒbƒg‚ðÄì¬
@spriteset.dispose
@spriteset = Spriteset_Map.new
# ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“ˆ—’†‚Ìê‡
if $game_temp.transition_processing
# ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“ˆ—’†ƒtƒ‰ƒO‚ðƒNƒŠƒA
$game_temp.transition_processing = false
# ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“ŽÀs
Graphics.transition(20)
end
# ƒ}ƒbƒv‚Éݒ肳‚ê‚Ä‚¢‚é BGM ‚Æ BGS ‚ÌŽ©“®Ø‚è‘Ö‚¦‚ðŽÀs
$game_map.autoplay
# ƒtƒŒ[ƒ€ƒŠƒZƒbƒg
Graphics.frame_reset
# “ü—Íî•ñ‚ðXV
Input.update
end
end |
|