加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 判约之轮 于 2015-4-14 16:50 编辑
纠结了老半天果然还是关键词不对,原来喵5已经写过一个基于window模板的脚本了,看起来即使功能冗余了点也足够使用
结果→https://rpg.blue/home.php?mod=sp ... o=blog&id=12023
很抱歉占用了多余的版面,结贴
非常喜欢elona那样的角色生成页面,但是在地图界面直接绘制文字的时候卡住了
我的想法是以help窗口为蓝本,改造一个文字窗口,由于背景和边框都被隐藏掉了,所以也就和sprite绘制文字无异了
但现在的问题是每次调用启动脚本只能维持显示1-4秒不等,并行处理循环的话,有时候会窗口重叠,有时候会完全消失,所以来此问一下大神们有什么可以解决的办法?由于是在事件内调用脚本,也不知道是否需要换个思路
$wt_link = nil #追踪指针 class Window_Text < Window_Base #-------------------------------------------------------------------------- # ● 初始化对象 #-------------------------------------------------------------------------- def initialize(x = 0, y = 0, text = "") super(x, y, Graphics.width, text.size * 50) self.back_opacity = 0 self.windowskin = Bitmap.new("Graphics\\System\\noframe.png") #无边框窗口皮肤 set_text(text) @link = self end #-------------------------------------------------------------------------- # ● 设置内容 #-------------------------------------------------------------------------- def set_text(text) if text != @text @text = text refresh end end #-------------------------------------------------------------------------- # ● 清除 #-------------------------------------------------------------------------- def clear set_text("") end #-------------------------------------------------------------------------- # ● 刷新 #-------------------------------------------------------------------------- def refresh contents.clear draw_text_ex(4, 0, @text) end end
$wt_link = nil #追踪指针
class Window_Text < Window_Base
#--------------------------------------------------------------------------
# ● 初始化对象
#--------------------------------------------------------------------------
def initialize(x = 0, y = 0, text = "")
super(x, y, Graphics.width, text.size * 50)
self.back_opacity = 0
self.windowskin = Bitmap.new("Graphics\\System\\noframe.png") #无边框窗口皮肤
set_text(text)
@link = self
end
#--------------------------------------------------------------------------
# ● 设置内容
#--------------------------------------------------------------------------
def set_text(text)
if text != @text
@text = text
refresh
end
end
#--------------------------------------------------------------------------
# ● 清除
#--------------------------------------------------------------------------
def clear
set_text("")
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
contents.clear
draw_text_ex(4, 0, @text)
end
end
补充,这是我在事件中的调用方式:
a = Window_Text a.new(50,50,"调用成功")
a = Window_Text
a.new(50,50,"调用成功")
|