class Gosu::Image

Public Class Methods

load_tiles(window, bmp, tile_width, tile_height, tileable) click to toggle source
# File lib/gosu_android/graphics/image.rb, line 120
def self.load_tiles(window, bmp, tile_width, tile_height, tileable)
  images = []

  #If bmp is a file path
  if bmp.class == String or bmp.class == Fixnum
    bmp = Gosu::load_image_file(window, bmp)
  end

  if (tile_width > 0)
    tiles_x = bmp.width / tile_width
  else
    tiles_x = -tile_width
    tile_width = bmp.width / tiles_x
  end

  if (tile_height > 0)
    tiles_y = bmp.height / tile_height
  else
    tiles_y = -tile_height
    tile_height = bmp.height / tiles_y
  end

  tiles_y.times do |y|
    tiles_x.times do |x|
      images.push Image.new(window, bmp, x * tile_width, y * tile_height, tile_width, tile_height, tileable)
    end
  end
  images
end
new(*args) click to toggle source
# File lib/gosu_android/graphics/image.rb, line 10
def initialize(*args)
  case args.length
  #Argument is ImageData
  when 1
    initialize_1 args[0]
  when 2
    if args[1].class == Bitmap
      initialize_3_bitmap(args[0], args[1])
    else
      initialize_3_file_name(args[0], args[1])
    end
  when 3
    if args[1].class == Bitmap
      initialize_3_bitmap(args[0], args[1], args[2])
    else
      initialize_3_file_name(args[0], args[1], args[2])
    end
  when 6
    if args[1].class == Bitmap
      initialize_7_bitmap(args[0], args[1], args[2], args[3], args[4], args[5])
    else
      initialize_7_file_name(args[0], args[1], args[2], args[3], args[4], args[5])
    end
  when 7
    if args[1].class == Bitmap
      initialize_7_bitmap(args[0], args[1], args[2], args[3], args[4], args[5], args[6])
    else
      initialize_7_file_name(args[0], args[1], args[2], args[3], args[4], args[5], args[6])
    end
  else
    raise ArgumentError
  end
end

Public Instance Methods

draw(x, y, z, factor_x = 1, factor_y = 1, c = Color::WHITE, mode = :default) click to toggle source
# File lib/gosu_android/graphics/image.rb, line 84
def draw(x, y, z, factor_x = 1, factor_y = 1, c = Color::WHITE, mode = :default)
  x2 = x + width*factor_x
  y2 = y + height*factor_y      
  @data.draw(x, y, c, x2, y, c, x, y2, c, x2, y2, c, z, AM_MODES[mode])
end
draw_rot(x, y, z, angle, center_x = 0.5, center_y = 0.5, factor_x = 1.0, factor_y = 1.0, c = Color::WHITE, mode = :default) click to toggle source
# File lib/gosu_android/graphics/image.rb, line 90
def draw_rot(x, y, z, angle, center_x = 0.5, center_y = 0.5, factor_x = 1.0,
  factor_y = 1.0, c = Color::WHITE, mode = :default)

  size_y = width  * factor_x
  size_y = height * factor_y
  offs_x = Gosu::offset_x(angle, 1)
  offs_y = Gosu::offset_y(angle, 1)

  #Offset to the centers of the original Image's edges when it is rotated
  #by <angle> degrees.
  dist_to_left_x   = +offs_y * size_y * center_x
  dist_to_left_y   = -offs_x * size_y * center_x
  dist_to_right_x  = -offs_y * size_y * (1 - center_x)
  dist_to_right_y  = +offs_x * size_y * (1 - center_x)
  dist_to_top_x    = +offs_x * size_y * center_y
  dist_to_top_y    = +offs_y * size_y * center_y
  dist_to_bottom_x = -offs_x * size_y * (1 - center_y)
  dist_to_bottom_y = -offs_y * size_y * (1 - center_y)

  @data.draw(x + dist_to_left_x  + dist_to_top_x,
    y + dist_to_left_y  + dist_to_top_y, c,
    x + dist_to_right_x + dist_to_top_x,
    y + dist_to_right_y + dist_to_top_y, c,
    x + dist_to_left_x  + dist_to_bottom_x,
    y + dist_to_left_y  + dist_to_bottom_y, c,
    x + dist_to_right_x + dist_to_bottom_x,
    y + dist_to_right_y + dist_to_bottom_y,
    c, z, AM_MODES[mode])
end
height() click to toggle source
# File lib/gosu_android/graphics/image.rb, line 80
def height
  @data.height
end
width() click to toggle source
# File lib/gosu_android/graphics/image.rb, line 76
def width
  @data.width
end

Private Instance Methods

initialize_1(data) click to toggle source

Private initialize methods

# File lib/gosu_android/graphics/image.rb, line 46
def initialize_1 data
  @data = data
end
initialize_3_bitmap(window, source, tileable = false) click to toggle source
# File lib/gosu_android/graphics/image.rb, line 50
def initialize_3_bitmap(window, source, tileable = false)
  initialize_7_bitmap(window, source, 0, 0, source.width, source.height, tileable)
end
initialize_3_file_name(window, file_name, tileable = false) click to toggle source
# File lib/gosu_android/graphics/image.rb, line 54
def initialize_3_file_name(window, file_name, tileable = false)
  bmp = Gosu::load_image_file(window, file_name)
  initialize_3_bitmap(window, bmp, tileable)
end
initialize_7_bitmap(window, source, src_x, src_y, src_width, src_height, tileable = false) click to toggle source
# File lib/gosu_android/graphics/image.rb, line 65
def initialize_7_bitmap(window, source, src_x, src_y, src_width, src_height,
          tileable = false)
  if tileable
    @data = window.create_image(source, src_x, src_y, src_width, src_height, BF_TILEABLE)
  else
    @data = window.create_image(source, src_x, src_y, src_width, src_height, BF_SMOOTH)
  end
  ObjectSpace.define_finalizer(self, Proc.new{@data.finalize})
end
initialize_7_file_name(window, file_name, src_x, src_y, src_width, src_height, tileable = false) click to toggle source
# File lib/gosu_android/graphics/image.rb, line 59
def initialize_7_file_name(window, file_name, src_x, src_y, src_width, src_height,
          tileable = false)
  bmp = Gosu::load_image_file(window, file_name)
  initialize_7_bitmap(window, bmp, src_x, src_y, src_width, src_height, tileable)
end