TheoAllen

Theo - Pause anywhere at anytime

Jan 18th, 2014
576
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 4.03 KB | None | 0 0
  1. # =============================================================================
  2. # TheoAllen - Pause anywhere at anytime
  3. # Version : 1.0
  4. # Contact : www.rpgmakerid.com (or) http://theolized.blogspot.com
  5. # (This script documentation is written in informal indonesian language)
  6. # =============================================================================
  7. ($imported ||= {})[:Theo_Pause] = true
  8. # =============================================================================
  9. # Change Logs:
  10. # -----------------------------------------------------------------------------
  11. # 2014.01.16 - Finished script
  12. # =============================================================================
  13. =begin
  14.  
  15.   Perkenalan :
  16.   Script ini ngebikin kamu bisa ngepause dimana dan kapan saja
  17.  
  18.   Cara penggunaan :
  19.   Pasang script ini di bawah material namun di atas main
  20.   Edit konfignya jika dirasa perlu
  21.  
  22.   Terms of Use :
  23.   Credit gw, TheoAllen. Kalo semisal u bisa ngedit2 script gw trus jadi lebih
  24.   keren, terserah. Ane bebasin. Asal ngga ngeklaim aja. Kalo semisal mau
  25.   dipake buat komersil, jangan lupa, gw dibagi gratisannya.  
  26.  
  27. =end
  28. # =============================================================================
  29. # Konfigurasi
  30. # =============================================================================
  31. module Theo
  32.   module Pause
  33.   # --------------------------------------------------------------------------
  34.     Color         = Color.new(0,0,0,150)
  35.   # Background color. Isi dengan format Color.new(red,green,blue,alpha)
  36.     Text          = "Pause"
  37.   # Text yang ditampilkan saat pause
  38.   # --------------------------------------------------------------------------
  39.     FontName      = ["Calibri"] # Font yang digunakan
  40.     FontSize      = 72          # Size font
  41.     FontBold      = true        # Bold?
  42.     FontItalic    = true        # Miring?
  43.   # --------------------------------------------------------------------------
  44.     DisplayPause  = true  # Tampilkan notifikasi pause?
  45.     Button        = :ALT  # Tombol untuk melakukan pause
  46.   # --------------------------------------------------------------------------
  47.   end
  48. end
  49. # =============================================================================
  50. # Akhir dari konfigurasi
  51. # =============================================================================
  52. class Sprite_Screen < Sprite
  53.  
  54.   def initialize(viewport = nil)
  55.     super(viewport)
  56.     self.bitmap = Bitmap.new(Graphics.width,Graphics.height)
  57.   end
  58.  
  59.   def dispose
  60.     self.bitmap.dispose
  61.     super
  62.   end
  63.  
  64. end
  65.  
  66. class Bitmap
  67.  
  68.   def entire_fill(color = Color.new(0,0,0,150))
  69.     fill_rect(self.rect,color)
  70.   end
  71.  
  72. end
  73.  
  74. class Scene_Base
  75.  
  76.   alias scene_start start
  77.   def start
  78.     scene_start
  79.     @pause_viewport = Viewport.new
  80.     @pause_viewport.z = 999
  81.     @pause_sprite = Sprite_Screen.new
  82.     @pause_sprite.viewport = @pause_viewport
  83.     @pause_sprite.bitmap.entire_fill(Theo::Pause::Color)
  84.     @pause_sprite.bitmap.font.name = Theo::Pause::FontName
  85.     @pause_sprite.bitmap.font.size = Theo::Pause::FontSize
  86.     @pause_sprite.bitmap.font.bold = Theo::Pause::FontBold
  87.     @pause_sprite.bitmap.font.italic = Theo::Pause::FontItalic
  88.     @pause_sprite.bitmap.draw_text(@pause_sprite.bitmap.rect,
  89.       Theo::Pause::Text, 1)
  90.     @pause_sprite.visible = false
  91.   end
  92.  
  93.   alias pause_update update_basic
  94.   def update_basic
  95.     pause_update
  96.     if Input.trigger?(Theo::Pause::Button)
  97.       $pause_flag = true
  98.       @pause_sprite.visible = true if Theo::Pause::DisplayPause
  99.       @saved_framecount = Graphics.frame_count
  100.       while $pause_flag
  101.         update_for_pause
  102.       end
  103.     end
  104.   end
  105.  
  106.   def update_for_pause
  107.     Graphics.update
  108.     Input.update
  109.     if Input.trigger?(Theo::Pause::Button)
  110.       $pause_flag = false
  111.       Graphics.frame_count = @saved_framecount
  112.       @pause_sprite.visible = false
  113.       Input.update
  114.     end
  115.   end
  116.  
  117.   alias scene_terminate terminate
  118.   def terminate
  119.     scene_terminate
  120.     @pause_viewport.dispose
  121.     @pause_sprite.dispose
  122.   end
  123.  
  124. end
  125. $pause_flag = false
Advertisement
Add Comment
Please, Sign In to add comment