Class: Yeah::Display Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/yeah/_platform/display.rb

Overview

This class is abstract.

Provided by a Platform.

The Display is responsible for drawing to a game display. It provides a procedural drawing API similar to Processing or HTML5 Canvas.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Display

Returns a new instance of Display.

Parameters:

  • options (Hash) (defaults to: {})

    for new object

Options Hash (options):

  • :size (Vector) — default: V[1280, 720]

    of display

  • :canvas_selector (String) — default: 'canvas'

    for canvas HTML element (applies only to Web::Display)

Raises:

  • (NotImplementedError)


11
12
13
# File 'lib/yeah/_platform/display.rb', line 11

def initialize(options = {})
  raise NotImplementedError
end

Instance Attribute Details

#fill_colorColor

Returns color for fill.

Parameters:

  • color (Color)

    for fill

Returns:

  • (Color)

    color for fill



# File 'lib/yeah/_platform/display.rb', line 27

#heightInteger

Returns height of display in pixels.

Parameters:

  • height (Integer)

    to make display in pixels

Returns:

  • (Integer)

    height of display in pixels



# File 'lib/yeah/_platform/display.rb', line 23

#sizeVector

Returns size of display in pixels.

Parameters:

  • size (Vector)

    to make display in pixels

Returns:

  • (Vector)

    size of display in pixels



# File 'lib/yeah/_platform/display.rb', line 15

#stroke_colorColor

Returns color for stroke.

Parameters:

  • color (Color)

    for stroke

Returns:

  • (Color)

    color for stroke



# File 'lib/yeah/_platform/display.rb', line 31

#stroke_widthNumeric

Returns width for stroke in pixels.

Parameters:

  • width (Numeric)

    for stroke in pixels

Returns:

  • (Numeric)

    width for stroke in pixels



# File 'lib/yeah/_platform/display.rb', line 35

#text_fontFont

Returns font for text.

Parameters:

  • font (Font)

    for text

Returns:

  • (Font)

    font for text



# File 'lib/yeah/_platform/display.rb', line 39

#text_sizeInteger

Returns size for text in pixels.

Parameters:

  • size (Integer)

    for text in pixels

Returns:

  • (Integer)

    size for text in pixels



# File 'lib/yeah/_platform/display.rb', line 43

#widthInteger

Returns width of display in pixels.

Parameters:

  • width (Integer)

    to make display in pixels

Returns:

  • (Integer)

    width of display in pixels



# File 'lib/yeah/_platform/display.rb', line 19

Instance Method Details

#begin_shapenil

Begin new shape.

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 182

#clearnil

Clear display with fill color.

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 178

#color_at(position) ⇒ Color

Returns color of pixel.

Parameters:

  • position (Vector)

    of pixel from which to get color

Returns:

  • (Color)

    color of pixel



# File 'lib/yeah/_platform/display.rb', line 47

#curve2_to(position, control1, control2) ⇒ nil

Trace curve with 2 control points to position as part of shape.

Parameters:

  • position (Vector)
  • first (Vector)

    control point position

  • second (Vector)

    control point position

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 206

#curve_to(position, control) ⇒ nil

Trace curve with a control point to position as part of shape.

Parameters:

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 200

#end_shapenil

End shape.

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 186

#fill_ellipse(center, radius) ⇒ nil

Note:

‘Web::Display#fill_ellipse` is currently 2D (only X and Y apply).

Fill an ellipse at a center position and 2D radius.

Parameters:

  • center (Vector)

    position

  • radius (Vector)

    in pixels in 2D

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 171

#fill_rectangle(position, size) ⇒ nil

Note:

‘Web::Display#fill_rectangle` is currently 2D (only X and Y apply).

Fill a rectangle at a position and size.

Parameters:

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 157

#fill_shapenil

Fill previously made shape.

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 217

#fill_text(text, position) ⇒ nil

Fill text at a position.

Parameters:

  • text (String)

    value

  • position (Vector)

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 237

#image(image, position) ⇒ nil

Draw an image at a position.

Examples:

Draw a duck within a game

display.image(Image['images/duck.png'], V[80, 80])

Parameters:

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 221

#image_cropped(image, position, crop_position, crop_size) ⇒ nil

Draw a cropped image at a position.

Parameters:

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 229

#line_to(position) ⇒ nil

Trace line to position as part of shape.

Parameters:

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 195

#move_to(position) ⇒ nil

Move shape cursor to position.

Parameters:

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 190

#popnil

Pop a transformation off the transformation stack and use it.

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 122

#pushnil

Push current transformation to the transformation stack.

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 118

#rotate(radians) ⇒ nil

Note:

‘Web::Display#rotate` is currently 2D (only Z applies).

Rotate the transformation by vector radians.

Parameters:

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 95

#rotate_x(radians) ⇒ nil

Note:

No-op in Web::Display, which is currently 2D.

Rotate the transformation by radians on the X axis.

Parameters:

  • radians (Numeric)

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 101

#rotate_y(radians) ⇒ nil

Note:

No-op in Web::Display, which is currently 2D.

Rotate the transformation by radians on the Y axis.

Parameters:

  • radians (Numeric)

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 107

#rotate_z(radians) ⇒ nil

Rotate the transformation by radians on the Z axis.

Parameters:

  • radians (Numeric)

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 113

#scale(multiplier) ⇒ nil

Note:

‘Web::Display#scale` is currently 2D (only X and Y apply).

Scale the transformation by a vector multiplier.

Parameters:

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 73

#scale_x(multiplier) ⇒ nil

Scale the transformation by a multiplier on the X axis.

Parameters:

  • multiplier (Numeric)

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 79

#scale_y(multiplier) ⇒ nil

Scale the transformation by a multiplier on the Y axis.

Parameters:

  • multiplier (Numeric)

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 84

#scale_z(multiplier) ⇒ nil

Note:

No-op in Web::Display, which is currently 2D.

Scale the transformation by a multiplier on the Z axis.

Parameters:

  • multiplier (Numeric)

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 89

#stroke_curve(start_pos, end_pos, control) ⇒ nil

Note:

‘Web::Display#stroke_curve` is currently 2D (only X and Y apply).

Stroke curve with a control point between two positions.

Parameters:

  • start (Vector)

    position

  • end (Vector)

    position

  • control (Vector)

    point position

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 133

#stroke_curve2(start_pos, end_pos, control1, control2) ⇒ nil

Note:

‘Web::Display#stroke_curve2` is currently 2D (only X and Y apply).

Stroke curve with 2 control points between two positions.

Parameters:

  • start (Vector)

    position

  • end (Vector)

    position

  • first (Vector)

    control point position

  • second (Vector)

    control point position

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 141

#stroke_ellipse(center, radius) ⇒ nil

Note:

‘Web::Display#stroke_ellipse` is currently 2D (only X and Y apply).

Stroke an ellipse at a center position and 2D radius.

Parameters:

  • center (Vector)

    position

  • radius (Vector)

    in pixels in 2D

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 164

#stroke_line(start_pos, end_pos) ⇒ nil

Note:

‘Web::Display#stroke_line` is currently 2D (only X and Y apply).

Stroke a line between two positions.

Parameters:

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 126

#stroke_rectangle(position, size) ⇒ nil

Note:

‘Web::Display#stroke_rectangle` is currently 2D (only X and Y apply).

Stroke a rectangle at a position and size.

Parameters:

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 150

#stroke_shapenil

Stroke previously made shape.

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 213

#stroke_text(text, position) ⇒ nil

Stroke text at a position.

Parameters:

  • text (String)

    value

  • position (Vector)

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 243

#translate(displacement) ⇒ nil

Note:

‘Web::Display#translate` is currently 2D (only X and Y apply).

Move the transformation by a vector displacement.

Parameters:

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 51

#translate_x(displacement) ⇒ nil

Move the transformation by a displacement on the X axis.

Parameters:

  • displacement (Numeric)

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 57

#translate_y(displacement) ⇒ nil

Move the transformation by a displacement on the Y axis.

Parameters:

  • displacement (Numeric)

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 62

#translate_z(displacement) ⇒ nil

Note:

No-op in Web::Display, which is currently 2D.

Move the transformation by a displacement on the Z axis.

Parameters:

  • displacement (Numeric)

Returns:

  • (nil)


# File 'lib/yeah/_platform/display.rb', line 67