Project1

标题: 请问计时器的问题 [打印本页]

作者: kvkv97    时间: 2023-11-1 21:23
标题: 请问计时器的问题
#=========================================================
# ■ 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
请问:问题1:
self.bitmap.draw_text(self.bitmap.rect, text, 1)里面的self.bitmap.rect的X坐标和Y坐标在什么地方?或者说,它不需要指定X和Y坐标?
在Sprite_Timer类中,self.x是Sprite_Timer对象的X坐标,而不是self.bitmap的X坐标。
问题2:
解释器设定的时间是$game_system.timer = @parameters[1] * Graphics.frame_rate,而同时,$game_system里面的timer更新速度是-1,那不是不同步了吗?
作者: srwjrevenger    时间: 2023-11-3 22:56
self.bitmap.draw_text(self.bitmap.rect, text, 1)里面的self.bitmap.rect的X坐标和Y坐标在什么地方?或者说,它不需要指定X和Y坐标?
self.bitmap.rect的x,y,width,height =0,0,self.bitmap的width88, height48
至于为什么?去学帮助文件和默认脚本。

在Sprite_Timer类中,self.x是Sprite_Timer对象的X坐标,而不是self.bitmap的X坐标。
虽然没有self.bitmap.x,但是这里它在屏幕的位置的确是self.x
至于为什么?去学帮助文件和默认脚本。

解释器设定的时间是$game_system.timer = @parameters[1] * Graphics.frame_rate,而同时,$game_system里面的timer更新速度是-1,那不是不同步了吗?
设定完时间之后才是开始时间的变化啊~  




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1