VanCoolz

[RGSS/2] Timer Effects

May 9th, 2012
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 3.10 KB | None | 0 0
  1. #==============================================================================
  2. # [RGSS/2] Timer Effects
  3. # Version : 1.1
  4. # Author : LowlingLife
  5. #==============================================================================
  6. # Script ini akan memodifikasi Timer sehingga akan memberikan suatu warning
  7. # atau peringatan jika waktu ingin habis dan akan memberikan efek suara
  8. # jam berdetik.
  9. #==============================================================================
  10. module TimerEffects
  11.   # Warna dari Timer jika waktumu masih normal. <- Putih
  12.   NORMAL_COLOR = [255, 255, 255]
  13.   # Warna dari Timer jika waktumu sudah mau habis <- Kuning
  14.   ALMOST_END_COLOR = [255, 255, 0]
  15.   # Warna dari Timer jika waktumu benar-benar hampir habis <- Merah
  16.   ENDING_COLOR = [255, 255, 0]
  17.   # Detik yang akan dijadikan sebagai penanda ALMOST_END.
  18.   ALMOST_END_SECOND = 60
  19.   # Detik yang akan dijadikan sebagai penanda ENDING.
  20.   ENDING_SECOND = 30
  21.   # Set ke true untuk memainkan suara jam.
  22.   USE_SOUND = true
  23.   # SE yang akan dimainkan saat jam berdetak.
  24.   SOUND = ["NormalSE", 100, 100]
  25.   # Apakah kamu ingin menggunakan Zoom pada Timer saat Ending Mode?
  26.   # Set ke true untuk mengaktifkan fitur ini.
  27.   ZOOM_END = true
  28. end
  29. class Sprite_Timer < Sprite
  30.   include TimerEffects
  31.   alias timer_effects_initialize initialize unless $@
  32.   def initialize(*args, &block)
  33.         timer_effects_initialize(*args, &block)
  34.     if ZOOM_END
  35.     self.x, self.y = 650 - self.bitmap.width/2, self.bitmap.height/2
  36.     self.ox, self.oy, self.z = self.bitmap.width/2, self.bitmap.height/2, 500
  37.     end
  38.   end
  39.  
  40.   def update
  41.     super
  42.     self.visible = $game_system.timer_working
  43.     # If timer is working
  44.     if $game_system.timer_working
  45.       if ZOOM_END
  46.         self.zoom_x = self.zoom_y = 1.0
  47.       if $game_system.timer / Graphics.frame_rate < 10
  48.         zoom = $game_system.timer % 10
  49.         self.zoom_x = self.zoom_y = 1.0 + (zoom < 5 ? zoom : 10-zoom) * 0.06
  50.       elsif $game_system.timer / Graphics.frame_rate < 60
  51.         zoom = $game_system.timer % 20
  52.         self.zoom_x = self.zoom_y = 1.0 + (zoom < 10 ? zoom : 20-zoom) * 0.03
  53.       else
  54.         self.zoom_x = self.zoom_y = 1.0
  55.       end
  56.     end
  57.     end
  58.     # If timer needs to be redrawn
  59.     if 2 * $game_system.timer / Graphics.frame_rate != @total_sec &&
  60.       $game_system.timer >= 0
  61.       self.bitmap.clear
  62.       @total_sec = 2 * $game_system.timer / Graphics.frame_rate
  63.       min = @total_sec / 120
  64.       sec = (@total_sec/2) % 60
  65.       if USE_SOUND
  66.       text = sprintf("%02d:%02d", min, sec)
  67.       Audio.se_play("Audio/SE/"+ SOUND[0], SOUND[1], SOUND[2])
  68.       else
  69.       text = sprintf("%02d:%02d", min, sec)
  70.       end
  71.       if @total_sec < ENDING_SECOND
  72.         self.bitmap.font.color.set(ENDING_COLOR[0], ENDING_COLOR[1], ENDING_COLOR[2])
  73.       elsif @total_sec < ALMOST_END_SECOND
  74.         self.bitmap.font.color.set(ALMOST_END_COLOR[0], ALMOST_END_COLOR[1], ALMOST_END_COLOR[2])
  75.       else
  76.         self.bitmap.font.color.set(NORMAL_COLOR[0], NORMAL_COLOR[1], NORMAL_COLOR[2])
  77.       end
  78.       self.bitmap.draw_text(self.bitmap.rect, text, 0)
  79.     end
  80.   end
  81. end
Advertisement
Add Comment
Please, Sign In to add comment