| 赞 | 58 |
| VIP | |
| 好人卡 | |
| 积分 | 12 |
| 经验 | |
| 最后登录 | 2023-5-29 |
| 在线时间 | 1017 小时 |
- 梦石
- 0
- 星屑
- 1232
- 在线时间
- 1017 小时
- 注册时间
- 2011-4-30
- 回帖
- 1464
|
发表于 2015-4-28 20:35:18
|
显示全部楼层
这个是脚本中关于地图上计时器绘制
[pre lang="ruby"]
#==============================================================================
# ■ 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
[/pre]
Spriteset_Map 是绘制地图的
这个里面有三句关于计时器的
# 生成计时器块
@timer_sprite = Sprite_Timer.new
# 释放计时器块
@timer_sprite.dispose
释放(就是删除的意思吧)
# 刷新计时器块
@timer_sprite.update
刷新,就是让计时器动
举个例子。
[pre lang="ruby"]
#==============================================================================
# ■ 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
[/pre]
然后在这三句后面各加上一句,
# 生成计时器块
@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值改变,一个计时器就做出来了。
|
评分
-
查看全部评分
|