To use it, there are two functions to be aware of:
Time.now
This reads the current time and date from the system clock.
strftime("%I:%M:%S %p")
This converts the time into a string, using the time of day (in 12-hour format), minutes and seconds, as well as showing AM/PM.
So to add the time and date, we can add the following:
t = Time.now
time = t.strftime("%I:%M:%S %p")
date = t.strftime("%a, %d %b, %Y")
time = t.strftime("%I:%M:%S %p")
date = t.strftime("%a, %d %b, %Y")
What this will do is store the time/date stamp format into variables and convert them to strings so that they can then be "drawn" in a window.
In RMXP, the following script can be used to replace the default. In RMVX, create a new script called Window_PlayTime:
#================================================================= # ** Window_PlayTime #----------------------------------------------------------------- # This window displays play time on the menu screen. #================================================================= class Window_PlayTime < Window_Base #--------------------------------------------------------------- # * Object Initialization #--------------------------------------------------------------- def initialize super(0, 0, 160, 64) self.contents = Bitmap.new(width - 32, height - 32) refresh end #--------------------------------------------------------------- # * Refresh #--------------------------------------------------------------- def refresh self.contents.clear self.contents.font.size = 16 t = Time.now time = t.strftime("%I:%M:%S %p") date = t.strftime("%a, %d %b, %Y") self.contents.font.color = normal_color self.contents.draw_text(0, -2, 140, WLH, date, 1) self.contents.draw_text(0, 14, 140, WLH, time, 1) end #--------------------------------------------------------------- # * Frame Update #--------------------------------------------------------------- def update super if Graphics.frame_count / Graphics.frame_rate != @total_sec refresh end end endRMXP will display the replacement time/date in the default "Play Time" window on the menu status.
To make this work in RMVX, add the following to Scene_Menu:
In the start definition routine, add
@window_playtime = Window_PlayTime.new
@window_playtime.x = X
@window_playtime.y = Y
@window_playtime.x = X
@window_playtime.y = Y
where X and Y are the x- and y-coordinates for the window placement.
Add the following to the terminate definition routine:
@window_playtime.dispose
This is to ensure that the window doesn't stay onscreen when the status menu has been exited.
And finally, add the following to the update definition routine:
@window_playtime.update
This is to ensure that the time refreshes every second while on the status menu.
The resultant "Play Time" window should now contain the current time and date, thus:
Tue, 19 May, 2009
12:33:22 PM
12:33:22 PM
And that's it, but the strftime element does have a number of different format options, which I'll detail in the next entry.