lib/cyberarm_engine/objects/text.rb in cyberarm_engine-0.9.0 vs lib/cyberarm_engine/objects/text.rb in cyberarm_engine-0.10.0

- old
+ new

@@ -1,11 +1,11 @@ module CyberarmEngine class Text CACHE = {} - attr_accessor :x, :y, :z, :size, :factor_x, :factor_y, :color, :shadow, :shadow_size, :options - attr_reader :text, :textobject + attr_accessor :x, :y, :z, :size, :options + attr_reader :text, :textobject, :factor_x, :factor_y, :color, :shadow, :shadow_size, :shadow_alpha, :shadow_color def initialize(text, options={}) @text = text.to_s || "" @options = options @size = options[:size] || 18 @@ -20,10 +20,12 @@ @shadow = true if options[:shadow] == true @shadow = false if options[:shadow] == false @shadow = true if options[:shadow] == nil @shadow_size = options[:shadow_size] ? options[:shadow_size] : 1 @shadow_alpha= options[:shadow_alpha] ? options[:shadow_alpha] : 30 + @shadow_alpha= options[:shadow_alpha] ? options[:shadow_alpha] : 30 + @shadow_color= options[:shadow_color] @textobject = check_cache(@size, @font) if @alignment case @alignment when :left @@ -65,22 +67,50 @@ def text=(string) @rendered_shadow = nil @text = string end + def factor_x=(n) + @rendered_shadow = nil + @factor_x = n + end + def factor_y=(n) + @rendered_shadow = nil + @factor_y = n + end + def color=(color) + @rendered_shadow = nil + @color = color + end + def shadow=(boolean) + @rendered_shadow = nil + @shadow = boolean + end + def shadow_size=(n) + @rendered_shadow = nil + @shadow_size = n + end + def shadow_alpha=(n) + @rendered_shadow = nil + @shadow_alpha = n + end + def shadow_color=(n) + @rendered_shadow = nil + @shadow_color = n + end + def width textobject.text_width(@text) end def height @text.lines.count > 0 ? (@text.lines.count) * textobject.height : @textobject.height end def draw if @shadow && !ARGV.join.include?("--no-shadow") - @shadow_alpha = 30 if @color.alpha > 30 - @shadow_alpha = @color.alpha if @color.alpha <= 30 - shadow_color = Gosu::Color.rgba(@color.red, @color.green, @color.blue, @shadow_alpha) + shadow_alpha = @color.alpha <= 30 ? @color.alpha : @shadow_alpha + shadow_color = @shadow_color ? @shadow_color : Gosu::Color.rgba(@color.red, @color.green, @color.blue, shadow_alpha) _x = @shadow_size _y = @shadow_size @rendered_shadow ||= Gosu.render((self.width+(shadow_size*2)).ceil, (self.height+(@shadow_size*2)).ceil) do