can someone please help me in making an option for timer. I want the timer to be customizable in color, font size and position.
I'm using Juan's option menu. if it can be on Juan's option menu, it will be better :)
Here's the code:
http://txtup.co/EJ6i7
Please use code tags and insert into spoilers. In this case, the size of the script was too big and it got cut off. There is a limit to how many characters you can place in a post. Better to just provide a link to the script in this situation.
Up.
*changed the code
up. still interested in this
My friend Eron did an script about this one month ago, for RPG maker XP.
You can use the timer as always, and you can also use:
timer.set(time[, x, y, show_numbers, font_name, font_size, [red, green, blue[,alpha]] ])
With this, timer has some new methods as you can see on the script instructions.
#==============================================================================
# ** Sprite_Timer Mejorado
#------------------------------------------------------------------------------
# Autor: Eron
#------------------------------------------------------------------------------
# Para usarlo a parte de con los comandos de siempre,
# desde Llamar Script podéis usar éstos métodos directamente:
# timer.set(time[, x, y, show_numbers, font_name, font_size, [red, green, blue[,alpha]] ])
# Ejemplo 1: timer.set(5)
# Ejemplo 2: timer.set(10, 0, 0)
# Ejemplo 3: timer.set(5, 5, 5, true, "Verdana", 35, [255,200,20])
# timer.time
# timer.min
# timer.sec
# timer.play # (unpause)
# timer.pause
# timer.stop
# timer.reset
# timer.pause?
# timer.add_time(value)
# timer.x
# timer.font
# timer.size
# timer.color
# timer.x = x
# timer.font = font
# timer.size = size
# timer.color = [red, green, blue[, alpha]]
# timer.show_numbers
# timer.show_numbers = true / false
#==============================================================================
class Scene_Map
attr_reader :spriteset
end
class Scene_Battle
attr_reader :spriteset
end
class Spriteset_Map
attr_reader :timer_sprite
end
class Spriteset_Battle
attr_reader :timer_sprite
end
class Interpreter
def timer
return $scene.spriteset.timer_sprite
end
def command_124
@parameters[0] == 0 ? timer.set(@parameters[1]) : timer.stop
end
end
class Sprite_Timer < Sprite
attr_accessor :show_numbers
def initialize
super
@font_name = "Arial"
@font_size = 32
@font_color = Color.new(255,255,255)
get_bitmap_size
self.x = 552
self.y = 0
self.z = 500
@time = -1
@reset_time = -1
@show_numbers = true
@pause = false
update
end
def get_bitmap_size
self.bitmap = Bitmap.new(1,1)
self.bitmap.font.name = @font_name
self.bitmap.font.size = @font_size
w = self.bitmap.text_size("00:00").width
h = self.bitmap.text_size("00:00").height
self.bitmap = Bitmap.new(w,h)
self.bitmap.font.name = @font_name
self.bitmap.font.size = @font_size
self.bitmap.font.color = @font_color
end
def dispose
if self.bitmap != nil
self.bitmap.dispose
end
super
end
#------------------------------------------------------------------------------
def set(time,x=self.x,y=self.y,show_numbers=@show_numbers,font_name=@font_name,font_size=@font_size,font_color=@font_color)
$game_system.timer_working = true
@time = (time + 1) * Graphics.frame_rate
@reset_time = time
@show_numbers = show_numbers
self.x, self.y = x, y
self.font = font_name if font_name != @font_name
self.size = font_size if font_size != @font_size
self.color = font_color if font_color != @font_color
update
end
def time
return @time / Graphics.frame_rate
end
def min
return time / 60
end
def sec
return time % 60
end
#------------------------------------------------------------------------------
def play
@pause = false
end
def pause
@pause = true
end
def pause?
return @pause
end
def stop
@time = -1
$game_system.timer_working = false
return
end
def reset
set(@reset_time)
end
#------------------------------------------------------------------------------
def add_time(value)
@time += value * Graphics.frame_rate
@time = [0, @time].max
end
#------------------------------------------------------------------------------
def font
return @font_name
end
def font=(name)
@font_name = name
self.bitmap.font.name = name
end
def size
return @font_size
end
def size=(size)
@font_size = size
get_bitmap_size
end
def color
return @font_color
end
def color=(array)
array << 255 if array.size == 3
color = Color.new(array[0],array[1],array[2],array[3])
@font_color = color
self.bitmap.font.color = color
end
def update
super
@time -= 1 if @time > 0 and not @pause
$game_system.timer = @time
if $game_system.timer_working
self.visible = @show_numbers
else
self.visible = false
end
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.draw_text(self.bitmap.rect, text, 1)
end
end
end