# ▽△▽ XRXSv38. Run-Smoother! VX ▽△▽ # # publish 2010/ 4/ 5β # update - /16 # #============================================================================== # 簡易設定 #============================================================================== module XEventSmoother def update super if need_update? end def need_update? @move_route_forcing or @move_type >= 1 or @step_anime end end class Game_Event < Game_Character include XEventSmoother end #============================================================================== # 画面が動いた?/ グラフィックが変更された? #============================================================================== class Game_Player < Game_Character alias xrxsv38_update_scroll update_scroll def update_scroll(last_real_x, last_real_y) xrxsv38_update_scroll(last_real_x, last_real_y) $game_map.scrolled = (last_real_x != @real_x or last_real_y != @real_y) end end class Game_Map attr_accessor :scrolled alias xrxsv38_update_scroll update_scroll def update_scroll self.scrolled = (@scroll_rest > 0) xrxsv38_update_scroll end end class Game_Character attr_accessor :need_refresh def need_update? true end alias xrxsv38_set_graphic set_graphic def set_graphic(character_name, character_index) xrxsv38_set_graphic(character_name, character_index) self.need_refresh = true end end class Game_Player < Game_Character def need_refresh return true end end class Game_Event < Game_Character alias xrxsv38_refresh refresh def refresh xrxsv38_refresh self.need_refresh = true end end #============================================================================== # キャラクタースプライト - フレーム更新 [再定義] #============================================================================== class Sprite_Character < Sprite_Base attr_accessor :character_graphic_refreshed def update super if !@character_graphic_refreshed or @character.need_refresh update_bitmap self.z = @character.screen_z @character_graphic_refreshed = true @character.need_refresh = false end self.visible = (not @character.transparent) update_src_rect if $game_map.scrolled or @character.need_update? or self.y == 0 self.x = @character.screen_x self.y = @character.screen_y end self.opacity = @character.opacity self.blend_type = @character.blend_type self.bush_depth = @character.bush_depth update_balloon if @character.animation_id != 0 animation = $data_animations[@character.animation_id] start_animation(animation) @character.animation_id = 0 end if @character.balloon_id != 0 @balloon_id = @character.balloon_id start_balloon @character.balloon_id = 0 end end end