Церб, ты лепишь комментарии просто так, не разбираясь в коде, да? Тогда, цербер, просто удали это из main и твоя кербь выйдет сразу в десяти частях!
rgss_main { SceneManager.run }
igo12. виноват, проверил только отображение, а про отрисовку не посмотрел.
Upd. Добрался до компа и сел нормально. Все проверил, протестировал и поправил. Держите:
=begin
Пример использования:
1. Добавить в ивент команду "Вызвать скрипт"
2. Скопировать туда следующий код:
show_var 1,0,0,"Variables[1]=%d"
=end
class Scene_Base
FONT_NAME = ["Times New Roman","Arial"]
FONT_SIZE = 32
def show_var(id,x,y,title="%d")
puts "var id is trying to show"
@spr||=[]
@spr[id]||={
:sprite => nil,
:origtitle => "%d",
:title => "%d",
:value => nil
}
@spr[id][:value] = $game_variables[id]
@spr[id][:origtitle] = title
@spr[id][:title] = format(@spr[id][:origtitle],@spr[id][:value])
@spr[id][:sprite] = Sprite.new if @spr[id][:sprite].nil?
@spr[id][:sprite].x = x
@spr[id][:sprite].y = y
@spr[id][:sprite].z = 250
@spr[id][:sprite].bitmap.dispose if !@spr[id][:sprite].bitmap.nil?
temp = Bitmap.new(640,480)
w = temp.text_size(@spr[id][:title]).width
h = temp.text_size(@spr[id][:title]).height
temp.dispose
@spr[id][:sprite].bitmap = Bitmap.new(w+2,h+2)
@spr[id][:sprite].bitmap.font.name = FONT_NAME
@spr[id][:sprite].bitmap.font.size = FONT_SIZE
@spr[id][:sprite].bitmap.draw_text(Rect.new(0,0,w,h),@spr[id][:title])
end
alias before_vars_update update
def update
before_vars_update
if !@spr.nil?
for id in 1..999
next if @spr[id].nil?
if $game_variables[id]!=@spr[id][:value]
puts $game_variables[id]
@spr[id][:value] = $game_variables[id]
@spr[id][:title] = format(@spr[id][:origtitle],@spr[id][:value])
w = @spr[id][:sprite].bitmap.text_size(@spr[id][:title])
if w.width > @spr[id][:sprite].bitmap.width
temp = Bitmap.new(640,480)
wb = temp.text_size(@spr[id][:title]).width
hb = temp.text_size(@spr[id][:title]).height
temp.dispose
@spr[id][:sprite].bitmap = Bitmap.new(wb+2,hb+2)
@spr[id][:sprite].bitmap.font.name = FONT_NAME
@spr[id][:sprite].bitmap.font.size = FONT_SIZE
@spr[id][:sprite].bitmap.draw_text(Rect.new(0,0,wb,hb),@spr[id][:title])
end
end
end# end for
end# end if
end
alias before_vars_terminate terminate
def terminate
before_vars_terminate
return if @spr.nil?
@spr.each{|spr|
spr.bitmap.dispose
spr.dispose
}
end
end
class Game_Interpreter
def show_var(*args)
SceneManager.scene.show_var(*args)
end
end
Настройки шрифта и размера добавлены. Если нужен цвет - могу дополнить