29-06-2010, 04:08 PM
- Descrizione:
- Autore:
- Screen:
-
- Script Menù:
Codice PHP:
#==============================================================================
# ** Font Border
#------------------------------------------------------------------------------
# Autore: The Sleeping Leonhart
# Versione: 1.0
# Data di rilascio: 06/06/2010
#------------------------------------------------------------------------------
# Descrzione:
# Aggiunge un bordo alle scritte.
#------------------------------------------------------------------------------
# Versione:
# 1.0 (06/06/2010): Versione Base.
#------------------------------------------------------------------------------
# Istruzioni:
# Utilizzare i metodi della classe Font:
# border: per attivare il bordo.
# border_color: per cambiare il colore del bordo.
# octa_border: per attivare il bordo piu definito.
#==============================================================================
class Font
#--------------------------------------------------------------------------
# * Variabili d'istanza pubbliche.
#--------------------------------------------------------------------------
attr_accessor :default_border
attr_accessor :default_border_color
attr_accessor :default_octa_border
attr_accessor :border_color
attr_reader :octa_border
attr_reader :border
#--------------------------------------------------------------------------
# * Controlla se è gia stato effettuato un aliasing dei metodi.
#--------------------------------------------------------------------------
if @fntinit_alias.nil?
#Aliasing del metodo.
alias tslcsfntbrdr_fnt_init initialize
@fntinit_alias = true
end
#--------------------------------------------------------------------------
# * Inizializzazzione dell'oggetto.
#--------------------------------------------------------------------------
def initialize(*args)
#Bordo attivo?
@default_border = true
#Colore del bordo (R, G, B)
@default_border_color = Color.new(0, 0, 0)
#Bordo piu definito?
@default_octa_border = false
@border = @default_border
@border_color = @default_border_color
@octa_border = @default_octa_border
tslcsfntbrdr_fnt_init(*args)
end
#--------------------------------------------------------------------------
# * Imposta il bordo.
#--------------------------------------------------------------------------
def border=(bool)
@border = bool
end
#--------------------------------------------------------------------------
# * Imposta il bordo piu definito.
#--------------------------------------------------------------------------
def octa_border=(bool)
@octa_border = bool
end
end
class Bitmap
#--------------------------------------------------------------------------
# * Controlla se è gia stato effettuato un aliasing dei metodi.
#--------------------------------------------------------------------------
if @bmpdrwtxt_alias.nil?
#Aliasing del metodo.
alias tslcsfntbrdr_btmp_drwtxt draw_text
@bmpdrwtxt_alias = true
end
#--------------------------------------------------------------------------
# * Disegna il testo.
#--------------------------------------------------------------------------
def draw_text(*args)
if font.border
clr = font.color.dup
self.font.color = self.font.border_color
if args[0].is_a?(Rect)
x = args[0].x
y = args[0].y
w = args[0].width
h = args[0].height
text = args[1]
al = args[2]
else
x = args[0]
y = args[1]
w = args[2]
h = args[3]
text = args[4]
al = args[5]
end
al = 0 if al.nil?
tslcsfntbrdr_btmp_drwtxt(x + 1, y, w, h, text, al)
tslcsfntbrdr_btmp_drwtxt(x - 1, y, w, h, text, al)
tslcsfntbrdr_btmp_drwtxt(x, y + 1, w, h, text, al)
tslcsfntbrdr_btmp_drwtxt(x, y - 1, w, h, text, al)
if font.octa_border
tslcsfntbrdr_btmp_drwtxt(x + 1, y + 1, w, h, text, al)
tslcsfntbrdr_btmp_drwtxt(x + 1, y - 1, w, h, text, al)
tslcsfntbrdr_btmp_drwtxt(x - 1, y - 1, w, h, text, al)
tslcsfntbrdr_btmp_drwtxt(x - 1, y + 1, w, h, text, al)
end
self.font.color = clr
end
tslcsfntbrdr_btmp_drwtxt(*args)
end
end