这个是脚本中关于地图上计时器绘制 
 
#============================================================================== # ■ Sprite_Timer #------------------------------------------------------------------------------ #  显示计时器用的活动块。监视 $game_system 、活动块状态 # 自动变化。 #==============================================================================   class Sprite_Timer < Sprite   #--------------------------------------------------------------------------   # ● 初始化对像   #--------------------------------------------------------------------------   def initialize     super     self.bitmap = Bitmap.new(88, 48)     self.bitmap.font.name = "Arial"     self.bitmap.font.size = 32     self.x = 640 - self.bitmap.width     self.y = 0     self.z = 500     update   end   #--------------------------------------------------------------------------   # ● 释放   #--------------------------------------------------------------------------   def dispose     if self.bitmap != nil       self.bitmap.dispose     end     super   end   #--------------------------------------------------------------------------   # ● 刷新画面   #--------------------------------------------------------------------------   def update     super     # 设置计时器执行中为可见     self.visible = $game_system.timer_working     # 如果有必要再次描绘计时器     if $game_system.timer / Graphics.frame_rate != @total_sec        # 清除窗口内容       self.bitmap.clear       # 计算总计秒数       @total_sec = $game_system.timer / Graphics.frame_rate             #这一句就是时间变量除以每秒帧数,算出时间。       # 生成计时器显示用字符串       min = @total_sec / 60       sec = @total_sec % 60       text = sprintf("%02d:%02d", min, sec)       # 描绘计时器       self.bitmap.font.color.set(255, 255, 255)       self.bitmap.draw_text(self.bitmap.rect, text, 1)     end   end end 
 
 #==============================================================================  
# ■ Sprite_Timer  
#------------------------------------------------------------------------------  
#  显示计时器用的活动块。监视 $game_system 、活动块状态  
# 自动变化。  
#==============================================================================  
   
class Sprite_Timer < Sprite  
  #--------------------------------------------------------------------------  
  # ● 初始化对像  
  #--------------------------------------------------------------------------  
  def initialize  
    super  
    self.bitmap = Bitmap.new(88, 48)  
    self.bitmap.font.name = "Arial"  
    self.bitmap.font.size = 32  
    self.x = 640 - self.bitmap.width  
    self.y = 0  
    self.z = 500  
    update  
  end  
  #--------------------------------------------------------------------------  
  # ● 释放  
  #--------------------------------------------------------------------------  
  def dispose  
    if self.bitmap != nil  
      self.bitmap.dispose  
    end  
    super  
  end  
  #--------------------------------------------------------------------------  
  # ● 刷新画面  
  #--------------------------------------------------------------------------  
  def update  
    super  
    # 设置计时器执行中为可见  
    self.visible = $game_system.timer_working  
    # 如果有必要再次描绘计时器  
    if $game_system.timer / Graphics.frame_rate != @total_sec   
      # 清除窗口内容  
      self.bitmap.clear  
      # 计算总计秒数  
      @total_sec = $game_system.timer / Graphics.frame_rate             #这一句就是时间变量除以每秒帧数,算出时间。  
      # 生成计时器显示用字符串  
      min = @total_sec / 60  
      sec = @total_sec % 60  
      text = sprintf("%02d:%02d", min, sec)  
      # 描绘计时器  
      self.bitmap.font.color.set(255, 255, 255)  
      self.bitmap.draw_text(self.bitmap.rect, text, 1)  
    end  
  end  
end  
 
  
 
 
Spriteset_Map 是绘制地图的 
这个里面有三句关于计时器的 
    # 生成计时器块 
    @timer_sprite = Sprite_Timer.new 
    # 释放计时器块 
    @timer_sprite.dispose 
释放(就是删除的意思吧) 
    # 刷新计时器块  
    @timer_sprite.update 
刷新,就是让计时器动 
 
举个例子。 
 
#============================================================================== # ■ Sprite_Timer 2 #------------------------------------------------------------------------------ #  显示计时器用的活动块。监视 $game_system 、活动块状态 # 自动变化。 #==============================================================================   class Sprite_Timer2 < Sprite   #--------------------------------------------------------------------------   # ● 初始化对像   #--------------------------------------------------------------------------   def initialize     super     self.bitmap = Bitmap.new(88, 48)     self.bitmap.font.name = "Arial"     self.bitmap.font.size = 32     self.x = 640 - self.bitmap.width  * 2                self.y = 0  +64                                            #y坐标64     self.z = 500     update   end   #--------------------------------------------------------------------------   # ● 释放   #--------------------------------------------------------------------------   def dispose     if self.bitmap != nil       self.bitmap.dispose     end     super   end   #--------------------------------------------------------------------------   # ● 刷新画面   #--------------------------------------------------------------------------   def update     super     # 设置计时器执行中为可见     self.visible = $d                                         # 如果有必要再次描绘计时器     if $s / Graphics.frame_rate != @total_sec        # 清除窗口内容       self.bitmap.clear       # 计算总计秒数       @total_sec = $s / Graphics.frame_rate             #这一句就是时间变量除以每秒帧数,算出时间。       # 生成计时器显示用字符串       min = @total_sec / 60       sec = @total_sec % 60       text = sprintf("%02d:%02d", min, sec)       # 描绘计时器       self.bitmap.font.color.set(255, 255, 255)       self.bitmap.draw_text(self.bitmap.rect, text, 1)     end   end end 
 
 #==============================================================================  
# ■ Sprite_Timer 2  
#------------------------------------------------------------------------------  
#  显示计时器用的活动块。监视 $game_system 、活动块状态  
# 自动变化。  
#==============================================================================  
   
class Sprite_Timer2 < Sprite  
  #--------------------------------------------------------------------------  
  # ● 初始化对像  
  #--------------------------------------------------------------------------  
  def initialize  
    super  
    self.bitmap = Bitmap.new(88, 48)  
    self.bitmap.font.name = "Arial"  
    self.bitmap.font.size = 32  
    self.x = 640 - self.bitmap.width  * 2             
    self.y = 0  +64                                            #y坐标64  
    self.z = 500  
    update  
  end  
  #--------------------------------------------------------------------------  
  # ● 释放  
  #--------------------------------------------------------------------------  
  def dispose  
    if self.bitmap != nil  
      self.bitmap.dispose  
    end  
    super  
  end  
  #--------------------------------------------------------------------------  
  # ● 刷新画面  
  #--------------------------------------------------------------------------  
  def update  
    super  
    # 设置计时器执行中为可见  
    self.visible = $d                                      
    # 如果有必要再次描绘计时器  
    if $s / Graphics.frame_rate != @total_sec   
      # 清除窗口内容  
      self.bitmap.clear  
      # 计算总计秒数  
      @total_sec = $s / Graphics.frame_rate             #这一句就是时间变量除以每秒帧数,算出时间。  
      # 生成计时器显示用字符串  
      min = @total_sec / 60  
      sec = @total_sec % 60  
      text = sprintf("%02d:%02d", min, sec)  
      # 描绘计时器  
      self.bitmap.font.color.set(255, 255, 255)  
      self.bitmap.draw_text(self.bitmap.rect, text, 1)  
    end  
  end  
end  
 
  
 
然后在这三句后面各加上一句, 
    # 生成计时器块 
    @timer_sprite = Sprite_Timer.new 
 
    # 释放计时器块 
    @timer_sprite.dispose 
 
    # 刷新计时器块  
    @timer_sprite.update 
 
各变成 
 
    # 生成计时器块 
    @timer_sprite = Sprite_Timer.new 
    @timer_sprite2 =Sprite_Timer2.new 
    # 释放计时器块 
    @timer_sprite.dispose 
    @timer_sprite2.dispose 
    # 刷新计时器块  
    @timer_sprite.update 
    @timer_sprite2.update 
 
然后Game_System中 
  def initialize 
    @map_interpreter = Interpreter.new(0, true) 
    @battle_interpreter = Interpreter.new(0, false) 
    @timer = 0 
    @timer_working = false 
    @save_disabled = false 
    @menu_disabled = false 
    @encounter_disabled = false 
    @message_position = 2 
    @message_frame = 0 
    @save_count = 0 
    @magic_number = 0 
    $s=0                #修改 
    $d=true         #修改 
  end 
 
  def update 
    # 计时器减 1 
    $s +=1 if $d ==true      #修改 
    if @timer_working and @timer > 0 
      @timer -= 1 
    end 
  end 
 
 
于是,当$d=true时就开始计时 $s值改变,一个计时器就做出来了。 
 
 
 |