Project1
标题:
【VX & VA】事件name显示……好像已经很多了吧
[打印本页]
作者:
iisnow
时间:
2011-12-16 14:02
标题:
【VX & VA】事件name显示……好像已经很多了吧
本帖最后由 iisnow 于 2012-3-25 22:52 编辑
不多说了:
这个是雪大的
脚本
我的脚本,比雪大的脚本浅显一些(
浅显多了
)
具体效果:
捕获.PNG
(71.34 KB, 下载次数: 18)
下载附件
保存到相册
2011-12-16 13:40 上传
于是很容易就发现我的脚本的一些特点了:
1.支持“\n”换行
2.支持复杂图形(包括元件图)的事件
3.自动居中于事件头顶
另外:
1.可以自定义需要显示的事件名称(前缀判据)
2.可以用开关全局控制(详见脚本)
脚本也很短啦,虽然没有雪大的47行,也只有53行:(不过,只能在VX中使用哦~VA也应该可以)
class Game_Event
attr_reader :event
end
class Sprite_Name < Sprite_Base
FLAG = "显示" #姓名前缀,只有拥有该前缀的name才会显示,设为空,则全部都会显示,
#KEY = 10 #全局开关ID,去掉改行以及17行的#即可使用
def initialize(viewport, character = nil)
super(viewport)
@cha = character
end
def update
super
return unless @cha.event.name =~ /^#{FLAG}/ #&& $game_switches[KEY]
if @cha.event.name.split(FLAG,2)[1] != @name
@name = FLAG.empty? ? @cha.event.name : @cha.event.name.split(FLAG,2)[1]
name_pa = @name.split(/\\n/i)
name_pa.delete_if {|x| x.downcase == '\n'}
@wid = []
name_pa.each{|s| @wid << Bitmap.new(100,100).text_size(s).width}
self.bitmap = Bitmap.new(@wid.max,16 * name_pa.size)
self.bitmap.font.size = 14
name_pa.each_with_index{|s,x| self.bitmap.draw_text(0,x * 16,@wid.max,16,s,1)}
end
if @cha.character_name == ""
self.y = @cha.screen_y - 16 * (@wid.size + 2)
else
temp_flag = @cha.character_name =~ /^\!?\$.*/
temp_pic = Cache.character(@cha.character_name)
self.y = temp_flag ? @cha.screen_y - temp_pic.height / 4 - 16 * @wid.size : @cha.screen_y - temp_pic.height / 8 - 16 * @wid.size
end
self.x = @cha.screen_x - @wid.max / 2
self.z = @cha.screen_z + 100
end
end
class Spriteset_Map
alias :iisnow_create_characters :create_characters
def create_characters
iisnow_create_characters
$game_map.events.values.each do |event|
@character_sprites.push(Sprite_Name.new(@viewport1, event))
end
end
end
复制代码
以上,完了,自习去的
作者:
忧雪の伤
时间:
2012-1-11 21:23
http://rpg.blue/thread-217619-1-1.html
哎呀,换行……又要更新了……今天才看到这个帖子啊喵……话说别老是提到我好久以前的练手物嘛,早就有正式版了。
作者:
木各洛林
时间:
2014-12-13 23:07
赞!!!
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1