UltimaForum

Pomoc [VXAce] - Wyśrodkowanie przewijanego tekstu

Rave - Wto 07 Sie, 2012 03:08
Temat postu: Wyśrodkowanie przewijanego tekstu
Wie 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:51

Sprawdź 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:48

Dzięki! Działa świetnie!

Powered by phpBB modified by Przemo © 2003 phpBB Group