Project1

标题: 一个实用的提示脚本 [打印本页]

作者: heiwang1997    时间: 2012-9-22 21:34
标题: 一个实用的提示脚本
本帖最后由 heiwang1997 于 2013-12-8 14:02 编辑

做游戏衍生出的东西,现在献丑拿出来发布一下
[line]1[/line]
功能:显示提示框(与得失物品提示脚本不同的是,该对话框可以随着地图刷新,不影响游戏流畅)
使用方法:在事件中输入脚本    tip("提示内容") 即可

  1. $提示框弹出时间 = 20
  2. class Window_Tip < Window_Base
  3.   def initialize
  4.     super(0,300,128,64)
  5.     self.contents_opacity = 0
  6.     self.opacity = 0
  7.     self.contents = Bitmap.new(width - 32, height - 32)
  8.     self.z = 9999
  9.     @p = 0
  10.   end
  11.   def refresh
  12.     text = $game_temp.tipping
  13.     self.x = (580-(text.to_s.size / 3 * 32))/2
  14.     self.width = (text.to_s.size / 3 * 32)+32
  15.     self.contents = Bitmap.new(width - 32, height - 32)
  16.     self.contents.draw_text(0, -2, (text.to_s.size / 3 * 32), 32, text,1)
  17.     case @p
  18.     when 0..40
  19.       self.opacity += 30
  20.       self.contents_opacity += 30
  21.     when (40 + $提示框弹出时间)..(80 + $提示框弹出时间)
  22.       self.opacity -= 30
  23.       self.contents_opacity -= 30
  24.     when (81 + $提示框弹出时间)
  25.       $game_temp.tipping = nil
  26.       self.opacity = 0
  27.       self.contents_opacity = 0
  28.       @p = -1
  29.     end
  30.     @p += 1
  31.   end
  32. end
  33. class Game_Temp
  34.   attr_accessor :tipping
  35. end
  36. class Interpreter
  37.   def tip(text)
  38.     $game_temp.tipping = text
  39.   end
  40. end
  41. class Scene_Map
  42.   alias b_m main
  43.   def main
  44.     @tip = Window_Tip.new
  45.     b_m
  46.     @tip.dispose
  47.   end
  48.   alias u update
  49.   def update
  50.     @tip.refresh if $game_temp.tipping
  51.     u
  52.   end
  53. end
复制代码

作者: 1733450036    时间: 2012-9-23 01:40
我测试了一下,真的可以啊,就是在途中有一个信息,可以用来做游戏中获得奖品提示不错
作者: 005020671    时间: 2012-9-26 12:13
本帖最后由 005020671 于 2012-9-26 12:16 编辑

refresh方法可以这么写、减少计算量、
  1. @text_temp #存储信息临时变量
  2. text = $game_temp.tipping
  3.    
  4.     if @text_temp != text #如果提示信息和上次信息不相等才重新计算               
  5.       @text_temp = text
  6.       self.x = (580-(text.to_s.size / 3 * 32))/2
  7.       self.width = (text.to_s.size / 3 * 32)+32
  8.       self.contents = Bitmap.new(width - 32, height - 32)
  9.       self.contents.draw_text(0, -2, (text.to_s.size / 3 * 32), 32, text,1)
  10.     end
复制代码

作者: 梦·林夕    时间: 2012-12-17 21:22
很实用,顶一下。
作者: 110007    时间: 2013-12-10 05:20
会出错,加我QQ454664075




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1