UltimaForum
Pomoc [VXAce] - Wyśrodkowanie przewijanego tekstu
Rave - Wto 07 Sie, 2012 03:08Temat postu : Wyśrodkowanie przewijanego tekstuWie ktoś, jak zrobić aby przewijany tekst był wyśrodkowany? Bo domyślnie jest on wyrównany do lewej, co tragicznie wygląda przy krótszych tekstach.
SmoKe - Pią 10 Sie, 2012 09:51Sprawdź to http://www.rpgrevolution....indow_help.html
w szczególności Set_Text
Ayene - Pią 10 Sie, 2012 10:41 Spoiler:
Kod: # by Ayene
class Window_ScrollText < Window_Base
def process_new_line(text, pos)
pos[:x] = check_align_x(text)
pos[:y] += pos[:height]
pos[:height] = calc_line_height(text)
end
def check_align_x(text)
text_width = calc_line_width(convert_escape_characters(text[/.*/]))
return (contents_width - text_width) / 2
end
def refresh
reset_font_settings
update_all_text_height
create_contents
draw_text_ex(check_align_x(@text), 0, @text)
self.oy = @scroll_pos = -height
end
def calc_line_width(line)
line = line.clone
line.gsub!(/[\n\r\f]/, "")
old_contents = contents
self.contents = Bitmap.new(contents_width, contents_height)
reset_font_settings
pos = {:x => 0, :y => 0, :new_x => 0, :height => calc_line_height(line)}
text_width = 0
while line[/^(.*?)\e(.*)/]
text_width += text_size($1).width
line = $2
code = obtain_escape_code(line)
process_escape_character(code, line, pos)
end
text_width += text_size(line).width + pos[:x]
self.contents.dispose
self.contents = old_contents
return text_width
end
end
Rave - Pią 10 Sie, 2012 19:48Dzięki! Działa świetnie!