Class: Camera::Image

Inherits:
Ruby2D::Image
  • Object
show all
Defined in:
lib/ruby2d/camera/image.rb

Overview

Wraps existing variables as well as adding new methods so that it can be handled by the Camera Module

Instance Method Summary collapse

Constructor Details

#initialize(path, opts = {}) ⇒ Image

Returns a new instance of Image.



31
32
33
34
35
# File 'lib/ruby2d/camera/image.rb', line 31

def initialize(path, opts = {})
  super(path, opts)
  Ruby2D::Camera << self
  Window.remove(self)
end

Instance Method Details

#_drawObject

Recalculates real coordiantes Use after changing variables



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/ruby2d/camera/image.rb', line 9

def _draw
  return if @hide

  temp_angle = Camera.angle * (Math::PI / 180)
  half_width = Window.width * 0.5
  half_height = Window.height * 0.5
  offset_x = @x + (@width / 2)
  offset_y = @y + (@height / 2)
  temp_x = (((offset_x - Camera.x) * Math.cos(temp_angle)) - ((offset_y - Camera.y) * Math.sin(temp_angle))) \
    * Camera.zoom + half_width - (width * Camera.zoom / 2)
  temp_y = (((offset_x - Camera.x) * Math.sin(temp_angle)) + ((offset_y - Camera.y) * Math.cos(temp_angle))) \
    * Camera.zoom + half_height - (height * Camera.zoom / 2)
  temp_rotate = rotate + Camera.angle
  temp_width = width * Camera.zoom
  temp_height = height * Camera.zoom
  draw(x: temp_x, y: temp_y,
       width: temp_width,
       height: temp_height,
       rotate: temp_rotate,
       color: [color.r, color.g, color.b, color.a])
end

#addObject



46
47
48
# File 'lib/ruby2d/camera/image.rb', line 46

def add
  @hide = false
end

#removeObject



42
43
44
# File 'lib/ruby2d/camera/image.rb', line 42

def remove
  @hide = true
end

#z=(z) ⇒ Object



37
38
39
40
# File 'lib/ruby2d/camera/image.rb', line 37

def z=(z)
  super(z)
  Ruby2D::Camera._sort_by_z
end