#============================================================================== # マップに現在時間を表示 ver1.00 #------------------------------------------------------------------------------ #[特徴] # マップ画面に現在時間を表示します。 # # 作成:ぶちょー # ホム:http://nyannyannyan.bake-neko.net/ # 著作:自分で作ったとか言わないで>< # 改造はご自由にどうぞ。 # リードミーとかに私の名前の載せたりするのは任意で。 #============================================================================== #============================================================================== # 設定項目 #============================================================================== module Kazari module RTM # 時間を表示するためのスイッチのID # このIDのスイッチが ON のとき、表示されます。 SWITCH_ID = 10 # 時間情報を記録する変数のID # このIDの変数に 時、分、秒 が記録されます。 # 例 : 13時05分30秒 の場合、1305030 が変数に記録されます。 # 0 にすると、無効化できます。 # リアル時間で分岐させたい場合に使用してください。 VARIABLE_ID = 1 # イベント実行中に時間情報を更新するかどうかのフラグ # true : イベント実行中もどんどん情報を更新し続ける。 # false : イベント実行中はイベント開始時の情報が記録されたままになる。 VARIABLE_UPDATE = false # 時間を表示する座標 [X座標, Y座標, Z座標] # Z座標は奥行きの座標です。 # 100より小さくするとピクチャーで隠れます。 # 121より大きくするとピクチャーより手前に表示されます。 COORD = [0, 0, 99] # フォント ["候補1", "候補2", "候補3"] # 候補1が見つからない場合、候補2を起用します。以下同様。 FONT_NAME = ["Arial", "UmePlus Gothic"] # 文字サイズ FONT_SIZE = 32 # 文字色 [R, G, B] FONT_COLOR = [255, 255, 255] # 時間の描画方法 # %H 24時間制の時 (00-23) # %I 12時間制の時 (01-12) # %M 分 (00-59) # %S 秒 (00-60) # %p 午前または午後 (AM,PM) # その他の制御文字についてはヘルプの Time を参照してください。 TIME_TEXT = "%H:%M" end end #============================================================================== # ここまで #============================================================================== #============================================================================== # ■ Spriteset_Map #============================================================================== class Spriteset_Map #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias real_time_initialize initialize def initialize real_time_initialize @real_time_sprite = Sprite_RealTime.new(@viewport2) end #-------------------------------------------------------------------------- # ● 解放 #-------------------------------------------------------------------------- alias real_time_dispose dispose def dispose real_time_dispose @real_time_sprite.dispose end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- alias real_time_update update def update real_time_update @real_time_sprite.update if @real_time_sprite != nil end end #============================================================================== # ■ Sprite_RealTime #============================================================================== class Sprite_RealTime < Sprite include Kazari::RTM #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize(viewport) super(viewport) bitmap = Bitmap.new(1, 1) bitmap.font.size = FONT_SIZE text = Time.now.strftime(TIME_TEXT) width = bitmap.text_size(text).width bitmap.dispose self.bitmap = Bitmap.new(width, FONT_SIZE) self.bitmap.font.name = FONT_NAME self.bitmap.font.size = FONT_SIZE self.x = COORD[0] self.y = COORD[1] self.z = COORD[2] update end #-------------------------------------------------------------------------- # ● 解放 #-------------------------------------------------------------------------- def dispose self.bitmap.dispose super end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update super self.visible = $game_switches[SWITCH_ID] text = Time.now.strftime(TIME_TEXT) if @text != text @text = text self.bitmap.clear self.bitmap.font.color.set(FONT_COLOR[0], FONT_COLOR[1], FONT_COLOR[2]) self.bitmap.draw_text(self.bitmap.rect, text) if VARIABLE_ID != 0 unless $game_map.interpreter.running? && ! VARIABLE_UPDATE t = Time.now $game_variables[VARIABLE_ID] = t.hour * 10000 + t.min * 100 + t.sec end end end end end