Project1
标题:
一个实用的提示脚本
[打印本页]
作者:
heiwang1997
时间:
2012-9-22 21:34
标题:
一个实用的提示脚本
本帖最后由 heiwang1997 于 2013-12-8 14:02 编辑
做游戏衍生出的东西,现在献丑拿出来发布一下
[line]1[/line]
功能:显示提示框(与得失物品提示脚本不同的是,该对话框可以随着地图刷新,不影响游戏流畅)
使用方法:在事件中输入脚本 tip("提示内容") 即可
$提示框弹出时间 = 20
class Window_Tip < Window_Base
def initialize
super(0,300,128,64)
self.contents_opacity = 0
self.opacity = 0
self.contents = Bitmap.new(width - 32, height - 32)
self.z = 9999
@p = 0
end
def refresh
text = $game_temp.tipping
self.x = (580-(text.to_s.size / 3 * 32))/2
self.width = (text.to_s.size / 3 * 32)+32
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.draw_text(0, -2, (text.to_s.size / 3 * 32), 32, text,1)
case @p
when 0..40
self.opacity += 30
self.contents_opacity += 30
when (40 + $提示框弹出时间)..(80 + $提示框弹出时间)
self.opacity -= 30
self.contents_opacity -= 30
when (81 + $提示框弹出时间)
$game_temp.tipping = nil
self.opacity = 0
self.contents_opacity = 0
@p = -1
end
@p += 1
end
end
class Game_Temp
attr_accessor :tipping
end
class Interpreter
def tip(text)
$game_temp.tipping = text
end
end
class Scene_Map
alias b_m main
def main
@tip = Window_Tip.new
b_m
@tip.dispose
end
alias u update
def update
@tip.refresh if $game_temp.tipping
u
end
end
复制代码
作者:
1733450036
时间:
2012-9-23 01:40
我测试了一下,真的可以啊,就是在途中有一个信息,可以用来做游戏中获得奖品提示不错
作者:
005020671
时间:
2012-9-26 12:13
本帖最后由 005020671 于 2012-9-26 12:16 编辑
refresh方法可以这么写、减少计算量、
@text_temp #存储信息临时变量
text = $game_temp.tipping
if @text_temp != text #如果提示信息和上次信息不相等才重新计算
@text_temp = text
self.x = (580-(text.to_s.size / 3 * 32))/2
self.width = (text.to_s.size / 3 * 32)+32
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.draw_text(0, -2, (text.to_s.size / 3 * 32), 32, text,1)
end
复制代码
作者:
梦·林夕
时间:
2012-12-17 21:22
很实用,顶一下。
作者:
110007
时间:
2013-12-10 05:20
会出错,加我QQ454664075
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1