UltimaForum

Skrypty [VX] - Przewijanie Windows_Help

Critetus - Sob 15 Paź, 2011 10:58
Temat postu: Przewijanie Windows_Help
PRZEWIJANIE WINDOWS_HELP

(Mam nadzieję, że tego skryptu jeszcze nie było, a przynajmniej nie zauważyłam. Jeśli jednak coś przeoczyłam proszę o usunięcie tematu. Proszę też o poprawki w tłumaczeniu, jeśli coś będzie nie tak)

Opis: Skrypt pozwala na przewijanie tekstu w Windows_Base, o co dokładnie chodzi jest najlepiej przedstawiane jest na ilustracji poniżej. Normalnie program ingeruje w rozmiar tekstu, przez co wygląd jest często nieciekawy.

Autor: cozziekuns
Tłumacz: Critetus

Screen:
Spoiler:



Skrypt:
Spoiler:

Kod:

#===============================================================================
# Przewijanie Windows_Help
#-------------------------------------------------------------------------------
# Wersja:: 1.1a
# Autor: Cozziekuns (rmrk)
# Ostatnia aktualizacja: 12/6/2011
#===============================================================================
# Opis:
#-------------------------------------------------------------------------------
# Ten skrypt pozwala przewijac tekst w Window_Help, jeżeli tekst jest za długi,
# aby się zmieniscic w oknie. Oryginalnie, RPG Maker automatycznie zmienia
# rozmiar czcionki, co zwykle jest nieestetycznie dla oczu.
#===============================================================================
# Historia:
# ------------------------------------------------------------------------------
# 12/06/2011 - pierwsza wersja skryptu
# 09/07/2011 - aktualizacja skryptu wraz z naprawą błędów
#===============================================================================
# Instrukcja:
# ------------------------------------------------------------------------------
# Skopiuj ten skrypt w sekcji Materials w edytorze skryptów.
#===============================================================================

module COZZIEKUNS
  module SCROLLING_WINDOW_HELP
    SCROLL_SPEED = 1 # Prędkośc presuwania tekstu w ramce.
    SCROLL_REFRESH_RATE = 1 # Im mniejsza częstotliwość odświeżania, tym szybciej tekst będzie się przesuwał.
    SCROLL_INITIAL_WAIT = 60 # Czas po którym tekst zaczyna się przesuwac (w milisekundach)
  end
end

#==============================================================================
# ** Window_Help
#------------------------------------------------------------------------------
# To okno pokazuje umiejętności i wyjaśnienia w czasie pokaywania statusu
# bohatera.
#==============================================================================

class Window_Help < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  alias coz_scrolltxt_wh_14199_initialize initialize
  def initialize(*args)
    coz_scrolltxt_wh_14199_initialize
    @scroll = false
    @frames = 0
  end
  #--------------------------------------------------------------------------
  # * Set Text
  #  text  : ciąg znaków wyświetlany w ramce
  #  align : wyrównanie (0..do lewej, 1..centralnie, 2..do prawej)
  #--------------------------------------------------------------------------
  def set_text(text, align = 0)
    if text != @text or align != @align
      text_width = contents.text_size(text).width + 40 > self.contents.width - 40
      text_width = false if align != 0
      if text_width
        self.contents = Bitmap.new(self.width + contents.text_size(text).width + 8, self.height - 32)
        @scroll = true
      else
        self.contents = Bitmap.new(self.width - 32, self.height - 32)
        @scroll = false
      end
      self.ox = 0
      self.contents.clear
      self.contents.font.color = normal_color
      self.contents.draw_text(4, 0, text_width ? self.contents.text_size(text).width : self.width - 40, WLH, text, align)
      @text = text
      @align = align
      @frames = 0
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    @frames += 1
    f_refresh = COZZIEKUNS::SCROLLING_WINDOW_HELP::SCROLL_REFRESH_RATE
    f_wait = COZZIEKUNS::SCROLLING_WINDOW_HELP::SCROLL_INITIAL_WAIT
    speed = COZZIEKUNS::SCROLLING_WINDOW_HELP::SCROLL_SPEED
    if @scroll == true
      if (Graphics.frame_count % f_refresh == 0) and @frames >= f_wait
        self.ox += speed
      end
      if self.ox >= self.contents.text_size(@text).width
        self.ox = -self.contents.text_size(@text).width / 2
      end
    end
  end
end


Vrona - Wto 18 Paź, 2011 14:32

Świetna robota.Znacząco poprawia estetykę w grze.
Ayene - Czw 22 Gru, 2011 15:26

Ciekawe rozwiązanie. Użyję, gdyż efekt dużo lepszy niż dwie linijki tekstu, które do tej pory stosowałam.
Bladehunter - Pon 11 Lut, 2013 16:09

Da się coś zrobić, żaby nie kolidował ze skryptem podział przedmiotów w menu?
Ayene - Pon 11 Lut, 2013 17:41

Bladehunter, wrzuć osobne zamówienie w dziale ze wsparciem. Zobaczymy, co da się zrobić.

Powered by phpBB modified by Przemo © 2003 phpBB Group