じ☆ve冰风 发表于 2026-8-1 17:05:13

Better Game Timer

Description: some extensions on the in-game timer to make it more robust and easy to use:


[*]You can add or subtract time from it
[*]You can pause and resume
[*]The timer auto-pauses when messages, choices, etc. are visible
[*]In-game display turns red when time is under a certain threshold



        Demo:



http://i.imgur.com/bmlTPH7.png



        Script: get it from GitHub. The initial version is below:

SpoilerSpoiler




#========================================================================
# ** Better Game Timer
#    By: ashes999 (ashes999@yahoo.com)
#    Version: 0.1
#------------------------------------------------------------------------
# * Description:
#
# -- Some extensions to make the timer a bit more useful and friendly.
# -- Original methods by Tsukihime (to add/lose time and pause/resume)
# -- You can also make the game time recolour if time is under some value (eg. 30s)
# -- via the CRITICAL_TIME_SECONDS constant.
# -- Finally, the timer pauses when message boxes, choices, etc. are visible.
# -- Author: ashes999 (ashes999@yahoo.com)
# -- Version 1.0

# Examples:
#$game_timer.add_time(20) # adds 20 seconds
#$game_timer.lose_time(15) # subtract 15 seconds
#$game_timer.pause
#$game_timer.resume
#========================================================================

# If remaining time is less than this many seconds, turn red. To disable, set to 0.
CRITICAL_TIME_SECONDS = 5

# End configuration

class Game_Timer

alias timer_plus_update update
def update
    if !@pause
      timer_plus_update unless $game_message.visible
    end       
end

# add more time, in seconds
def add_time(count)
    @count += count * Graphics.frame_rate
end

# subtract time, in seconds
def lose_time(count)
    @count = [@count - (count * Graphics.frame_rate), 0].max
end

def pause
    @pause = true
end

def resume
    @pause = false
end
end

#==============================================================================
# ** Sprite_Timer
#------------------------------------------------------------------------------
#This sprite is for timer displays. It monitors $game_timer and automatically
# changes sprite states.
#==============================================================================

class Sprite_Timer < Sprite
alias timer_plus_sprite_update update
def update
    timer_plus_sprite_update
    update_color
end

def update_color
    if @total_sec > 0 && @total_sec <= CRITICAL_TIME_SECONDS
      self.bitmap.font.color.set(255, 0, 0)   
    end
end
end






        Credits go to Tsukihime, who authored the original script here.


本贴来自国际rpgmaker官方论坛作者:ashes999处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/better-game-timer.31310/
页: [1]
查看完整版本: Better Game Timer