Advertisement
Guest User

Untitled

a guest
Aug 10th, 2010
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 8.07 KB | None | 0 0
  1. #==============================================================================
  2. # ★RGSS2
  3. # STR14_サイドテキスト v0.8 09/03/17
  4. #
  5. # ・マップ/バトル画面左横に文字をスライド表示させることができます。
  6. # ・用法はいろいろ。
  7. #  入手アイテム表示、ちょっとしたアナウンス、地名表示、etc...
  8. # ・戦闘中にもサイドテキスト表示が可能になりました。(v0.7)
  9. if false
  10. # 以下をコマンドのスクリプト等に貼り付けてテキスト表示
  11. s = $game_temp.sidetext  #
  12. i = s.index(nil)         # 基本設定
  13. i = s.size if (i == nil) #
  14. t = "サイドテキスト"     # テキスト
  15. f = true                 # 縁取り
  16. w = 120                  # 表示時間
  17. c = Color.new(64,32,128) # 縁取りの色
  18. s[i] = Sprite_Sidetext.new(t,f,w,c)
  19. # ここまで
  20. # ・縁取り指定 true = 有効 false = 無効
  21. # ・表示時間 w/60秒
  22. end
  23. #------------------------------------------------------------------------------
  24. #
  25. # 更新履歴
  26. # ◇0.7→0.8
  27. # Y座標の基準位置を設定できるようになった
  28. # 名前から汎用が消える。
  29. # ◇0.6→0.7
  30. # 戦闘中のサイドテキスト対応
  31. # ◇0.5→0.6
  32. # Z座標変更
  33. # 縁取りカラーを指定できるようになった
  34. #
  35. #==============================================================================
  36. # ■ Sprite_Sidetext
  37. #==============================================================================
  38. class Sprite_Sidetext < Sprite
  39.   # Y座標の基準位置
  40.   Y_OFFSET_MAP    = 5  # マップ画面
  41.   Y_OFFSET_BATTLE = 128 # バトル画面
  42.   #--------------------------------------------------------------------------
  43.   # ● オブジェクト初期化
  44.   #--------------------------------------------------------------------------
  45.   def initialize(text, frame = false, wait = 120, c = Color.new(64,32,128))
  46.     super()
  47.     self.x = 10
  48.     num = $game_temp.sidetext.index(nil)
  49.     num = $game_temp.sidetext.size if (num == nil)
  50.     y = ($game_temp.in_battle ?  Y_OFFSET_BATTLE : Y_OFFSET_MAP) + (num * 24)
  51.     self.y = y
  52.     self.z = 200
  53.     bitmap = Bitmap.new(32, 24)
  54.     w = bitmap.text_size(text).width
  55.     bitmap.dispose
  56.     bitmap = Bitmap.new(w, 24)
  57.     if frame
  58.       bitmap.draw_text_f(0, 0, w, 24, text, 0, c)
  59.     else
  60.       bitmap.draw_text(0, 0, w, 24, text)
  61.     end
  62.     self.bitmap = bitmap
  63.     self.opacity = 0
  64.     @wait = wait
  65.   end
  66.   #--------------------------------------------------------------------------
  67.   # ● フレーム更新
  68.   #--------------------------------------------------------------------------
  69.   def update
  70.     if @wait > 0
  71.       self.opacity += 24
  72.       return if self.opacity != 255
  73.       @wait -= 1
  74.     else
  75.       self.x += 4
  76.       self.opacity -= 8
  77.       dispose if self.opacity == 0
  78.     end
  79.   end
  80. end
  81. #==============================================================================
  82. # ■ Game_Temp
  83. #==============================================================================
  84. class Game_Temp
  85.   #--------------------------------------------------------------------------
  86.   # ● 公開インスタンス変数
  87.   #--------------------------------------------------------------------------
  88.   attr_accessor :sidetext
  89.   #--------------------------------------------------------------------------
  90.   # ● オブジェクト初期化
  91.   #--------------------------------------------------------------------------
  92.   alias initialize_str14 initialize
  93.   def initialize
  94.     initialize_str14
  95.     @sidetext = []
  96.   end
  97. end
  98. #==============================================================================
  99. # ■ Spriteset_Map
  100. #==============================================================================
  101. class Spriteset_Map
  102.   #--------------------------------------------------------------------------
  103.   # ● Sテキストの作成
  104.   #--------------------------------------------------------------------------
  105.   def create_sidetext
  106.     $game_temp.sidetext = []
  107.   end
  108.   #--------------------------------------------------------------------------
  109.   # ● Sテキストの解放
  110.   #--------------------------------------------------------------------------
  111.   def dispose_sidetext
  112.     for i in 0...$game_temp.sidetext.size
  113.       $game_temp.sidetext[i].dispose if $game_temp.sidetext[i] != nil
  114.     end
  115.     $game_temp.sidetext = []
  116.   end
  117.   #--------------------------------------------------------------------------
  118.   # ● Sテキストの更新
  119.   #--------------------------------------------------------------------------
  120.   def update_sidetext
  121.     for i in 0...$game_temp.sidetext.size
  122.       if $game_temp.sidetext[i] != nil
  123.         $game_temp.sidetext[i].update
  124.         if $game_temp.sidetext[i].disposed?
  125.           $game_temp.sidetext[i] = nil
  126.         end
  127.       end
  128.     end
  129.   end
  130.   #--------------------------------------------------------------------------
  131.   # ★ エイリアス
  132.   #--------------------------------------------------------------------------
  133.   alias create_parallax_str14 create_parallax
  134.   def create_parallax
  135.     create_parallax_str14
  136.     create_sidetext
  137.   end
  138.   alias dispose_str14 dispose
  139.   def dispose
  140.     dispose_sidetext
  141.     dispose_str14
  142.   end
  143.   alias update_str14 update
  144.   def update
  145.     update_str14
  146.     update_sidetext
  147.   end
  148. end
  149. #==============================================================================
  150. # ■ Spriteset_Battle
  151. #==============================================================================
  152. class Spriteset_Battle
  153.   #--------------------------------------------------------------------------
  154.   # ● Sテキストの作成
  155.   #--------------------------------------------------------------------------
  156.   def create_sidetext
  157.     $game_temp.sidetext = []
  158.   end
  159.   #--------------------------------------------------------------------------
  160.   # ● Sテキストの解放
  161.   #--------------------------------------------------------------------------
  162.   def dispose_sidetext
  163.     for i in 0...$game_temp.sidetext.size
  164.       $game_temp.sidetext[i].dispose if $game_temp.sidetext[i] != nil
  165.     end
  166.     $game_temp.sidetext = []
  167.   end
  168.   #--------------------------------------------------------------------------
  169.   # ● Sテキストの更新
  170.   #--------------------------------------------------------------------------
  171.   def update_sidetext
  172.     for i in 0...$game_temp.sidetext.size
  173.       if $game_temp.sidetext[i] != nil
  174.         $game_temp.sidetext[i].update
  175.         if $game_temp.sidetext[i].disposed?
  176.           $game_temp.sidetext[i] = nil
  177.         end
  178.       end
  179.     end
  180.   end
  181.   #--------------------------------------------------------------------------
  182.   # ★ エイリアス
  183.   #--------------------------------------------------------------------------
  184.   alias create_battleback_str14 create_battleback
  185.   def create_battleback
  186.     create_battleback_str14
  187.     create_sidetext
  188.   end
  189.   alias dispose_str14 dispose
  190.   def dispose
  191.     dispose_sidetext
  192.     dispose_str14
  193.   end
  194.   alias update_str14 update
  195.   def update
  196.     update_str14
  197.     update_sidetext
  198.   end
  199. end
  200. #==============================================================================
  201. # ■ Bitmap
  202. #==============================================================================
  203. class Bitmap
  204.   #--------------------------------------------------------------------------
  205.   # ● 文字縁取り描画
  206.   #--------------------------------------------------------------------------
  207.   def draw_text_f(x, y, width, height, str, align = 0, color = Color.new(64,32,128))
  208.     shadow = self.font.shadow
  209.     b_color = self.font.color.dup
  210.     font.shadow = false
  211.     font.color = color
  212.     draw_text(x + 1, y, width, height, str, align)
  213.     draw_text(x - 1, y, width, height, str, align)
  214.     draw_text(x, y + 1, width, height, str, align)
  215.     draw_text(x, y - 1, width, height, str, align)
  216.     font.color = b_color
  217.     draw_text(x, y, width, height, str, align)
  218.     font.shadow = shadow
  219.   end
  220.   def draw_text_f_rect(r, str, align = 0, color = Color.new(64,32,128))
  221.     draw_text_f(r.x, r.y, r.width, r.height, str, align = 0, color)
  222.   end
  223. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement