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ć.