Class: Ruby2D::Camera::Text
- Inherits:
-
Text
- Object
- Text
- Ruby2D::Camera::Text
- Defined in:
- lib/ruby2d/camera/text.rb
Overview
Wraps existing variables as well as adding new methods so that it can be handled by the Camera Module TODO: note that text could not be resized at the current iteration of Ruby2D so the math needs to be changed compensate for this. When Ruby2D gets updated to allow text resizing the math will need to be corrected again(see image_wrapper.rb for reference, that has math that allows for resizing)
Instance Attribute Summary collapse
-
#center ⇒ Object
Returns the value of attribute center.
Instance Method Summary collapse
-
#_draw ⇒ Object
Recalculates real coordiantes Use after changing variables.
- #add ⇒ Object
-
#initialize(text, opts = {}) ⇒ Text
constructor
A new instance of Text.
- #remove ⇒ Object
- #z=(z) ⇒ Object
Constructor Details
Instance Attribute Details
#center ⇒ Object
Returns the value of attribute center.
62 63 64 |
# File 'lib/ruby2d/camera/text.rb', line 62 def center @center end |
Instance Method Details
#_draw ⇒ Object
Recalculates real coordiantes Use after changing variables
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/ruby2d/camera/text.rb', line 15 def _draw return if @hide angle = Camera.angle * (Math::PI / 180) half_width = Window.width * 0.5 half_height = Window.height * 0.5 if center offset_y = y + (Camera.zoom / 2) offset_x = x + (Camera.zoom / 2) else offset_x = x + (width / Camera.zoom / 2) offset_y = y + (height / Camera.zoom / 2) end temp_x = (((offset_x - Camera.x) * Math.cos(angle)) - ((offset_y - Camera.y) * Math.sin(angle))) \ * Camera.zoom + half_width - (width / 2) temp_y = (((offset_x - Camera.x) * Math.sin(angle)) + ((offset_y - Camera.y) * Math.cos(angle))) \ * Camera.zoom + half_height - (height / 2) temp_rotate = rotate + Camera.angle # Workaround for resizing text # TODO: resizing doesnt work at all even with workaround temp_size = size # * Camera.zoom self.size *= Camera.zoom draw(x: temp_x, y: temp_y, rotate: temp_rotate, color: [color.r, color.g, color.b, color.a]) self.size = temp_size end |
#add ⇒ Object
58 59 60 |
# File 'lib/ruby2d/camera/text.rb', line 58 def add @hide = false end |
#remove ⇒ Object
54 55 56 |
# File 'lib/ruby2d/camera/text.rb', line 54 def remove @hide = true end |
#z=(z) ⇒ Object
49 50 51 52 |
# File 'lib/ruby2d/camera/text.rb', line 49 def z=(z) super(z) Ruby2D::Camera._sort_by_z end |