加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
F1 :
Graphics.frame_reset
重设画面的更新时间。调用该方法花费时间处理后,能避免严重的跳帧现象。
问题 :
1. Graphics.frame_reset的使用时机?
2. 能随处调用吗?
2. 以下,为什么要在那个时后调用Graphics.frame_reset?
Game_System
#-------------------------------------------------------------------------- # ● 演奏 BGM # bgm : 演奏的 BGM #-------------------------------------------------------------------------- def bgm_play(bgm) @playing_bgm = bgm if bgm != nil and bgm.name != "" Audio.bgm_play("Audio/BGM/" + bgm.name, bgm.volume, bgm.pitch) else Audio.bgm_stop end Graphics.frame_reset end
#--------------------------------------------------------------------------
# ● 演奏 BGM
# bgm : 演奏的 BGM
#--------------------------------------------------------------------------
def bgm_play(bgm)
@playing_bgm = bgm
if bgm != nil and bgm.name != ""
Audio.bgm_play("Audio/BGM/" + bgm.name, bgm.volume, bgm.pitch)
else
Audio.bgm_stop
end
Graphics.frame_reset
end
#-------------------------------------------------------------------------- # ● 演奏 BGS # bgs : 演奏的 BGS #-------------------------------------------------------------------------- def bgs_play(bgs) @playing_bgs = bgs if bgs != nil and bgs.name != "" Audio.bgs_play("Audio/BGS/" + bgs.name, bgs.volume, bgs.pitch) else Audio.bgs_stop end Graphics.frame_reset end
#--------------------------------------------------------------------------
# ● 演奏 BGS
# bgs : 演奏的 BGS
#--------------------------------------------------------------------------
def bgs_play(bgs)
@playing_bgs = bgs
if bgs != nil and bgs.name != ""
Audio.bgs_play("Audio/BGS/" + bgs.name, bgs.volume, bgs.pitch)
else
Audio.bgs_stop
end
Graphics.frame_reset
end
#-------------------------------------------------------------------------- # ● ME 的演奏 # me : 演奏的 ME #-------------------------------------------------------------------------- def me_play(me) if me != nil and me.name != "" Audio.me_play("Audio/ME/" + me.name, me.volume, me.pitch) else Audio.me_stop end Graphics.frame_reset end
#--------------------------------------------------------------------------
# ● ME 的演奏
# me : 演奏的 ME
#--------------------------------------------------------------------------
def me_play(me)
if me != nil and me.name != ""
Audio.me_play("Audio/ME/" + me.name, me.volume, me.pitch)
else
Audio.me_stop
end
Graphics.frame_reset
end
Spriteset_Map
#-------------------------------------------------------------------------- # ● 刷新画面 #-------------------------------------------------------------------------- def update # 远景与现在的情况有差异发情况下 if @panorama_name != $game_map.panorama_name or @panorama_hue != $game_map.panorama_hue @panorama_name = $game_map.panorama_name @panorama_hue = $game_map.panorama_hue if @panorama.bitmap != nil @panorama.bitmap.dispose @panorama.bitmap = nil end if @panorama_name != "" @panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue) end Graphics.frame_reset end # 雾与现在的情况有差异的情况下 if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue @fog_name = $game_map.fog_name @fog_hue = $game_map.fog_hue if @fog.bitmap != nil @fog.bitmap.dispose @fog.bitmap = nil end if @fog_name != "" @fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue) end Graphics.frame_reset end
#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------
def update
# 远景与现在的情况有差异发情况下
if @panorama_name != $game_map.panorama_name or
@panorama_hue != $game_map.panorama_hue
@panorama_name = $game_map.panorama_name
@panorama_hue = $game_map.panorama_hue
if @panorama.bitmap != nil
@panorama.bitmap.dispose
@panorama.bitmap = nil
end
if @panorama_name != ""
@panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue)
end
Graphics.frame_reset
end
# 雾与现在的情况有差异的情况下
if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue
@fog_name = $game_map.fog_name
@fog_hue = $game_map.fog_hue
if @fog.bitmap != nil
@fog.bitmap.dispose
@fog.bitmap = nil
end
if @fog_name != ""
@fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue)
end
Graphics.frame_reset
end
Scene_Map
#-------------------------------------------------------------------------- # ● 主角的场所移动 #-------------------------------------------------------------------------- def transfer_player # 清除主角场所移动调试标志 $game_temp.player_transferring = false # 移动目标与现在的地图有差异的情况下 if $game_map.map_id != $game_temp.player_new_map_id # 设置新地图 $game_map.setup($game_temp.player_new_map_id) end # 设置主角位置 $game_player.moveto($game_temp.player_new_x, $game_temp.player_new_y) # 设置主角朝向 case $game_temp.player_new_direction when 2 # 下 $game_player.turn_down when 4 # 左 $game_player.turn_left when 6 # 右 $game_player.turn_right when 8 # 上 $game_player.turn_up end # 矫正主角姿势 $game_player.straighten # 刷新地图 (执行并行事件) $game_map.update # 在生成活动块 @spriteset.dispose @spriteset = Spriteset_Map.new # 处理过渡中的情况下 if $game_temp.transition_processing # 清除过渡处理中标志 $game_temp.transition_processing = false # 执行过渡 Graphics.transition(20) end # 执行地图设置的 BGM、BGS 的自动切换 $game_map.autoplay # 设置画面 Graphics.frame_reset # 刷新输入信息 Input.update end end
#--------------------------------------------------------------------------
# ● 主角的场所移动
#--------------------------------------------------------------------------
def transfer_player
# 清除主角场所移动调试标志
$game_temp.player_transferring = false
# 移动目标与现在的地图有差异的情况下
if $game_map.map_id != $game_temp.player_new_map_id
# 设置新地图
$game_map.setup($game_temp.player_new_map_id)
end
# 设置主角位置
$game_player.moveto($game_temp.player_new_x, $game_temp.player_new_y)
# 设置主角朝向
case $game_temp.player_new_direction
when 2 # 下
$game_player.turn_down
when 4 # 左
$game_player.turn_left
when 6 # 右
$game_player.turn_right
when 8 # 上
$game_player.turn_up
end
# 矫正主角姿势
$game_player.straighten
# 刷新地图 (执行并行事件)
$game_map.update
# 在生成活动块
@spriteset.dispose
@spriteset = Spriteset_Map.new
# 处理过渡中的情况下
if $game_temp.transition_processing
# 清除过渡处理中标志
$game_temp.transition_processing = false
# 执行过渡
Graphics.transition(20)
end
# 执行地图设置的 BGM、BGS 的自动切换
$game_map.autoplay
# 设置画面
Graphics.frame_reset
# 刷新输入信息
Input.update
end
end
|