Method: Osb::Sprite#initialize

Defined in:
lib/osb/sprite.rb

#initialize(layer: Layer::Background, origin: Origin::Center, file_path:, initial_position: nil) ⇒ Sprite

Returns a new instance of Sprite.

Parameters:

  • layer (String) (defaults to: Layer::Background)

    the layer the object appears on.

  • origin (String) (defaults to: Origin::Center)

    where on the image should osu! consider that image’s origin (coordinate) to be.

  • file_path (String)

    filename of the image.

  • initial_position (Osb::Vector2, nil) (defaults to: nil)

    where the object should be by default.



14
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
42
# File 'lib/osb/sprite.rb', line 14

def initialize(
  layer: Layer::Background,
  origin: Origin::Center,
  file_path:,
  initial_position: nil
)
  Internal.assert_type!(layer, String, "layer")
  Internal.assert_value!(layer, Layer::ALL, "layer")
  Internal.assert_type!(origin, String, "origin")
  Internal.assert_value!(origin, Origin::ALL, "origin")
  Internal.assert_type!(file_path, String, "file_path")
  Internal.assert_file_name_ext!(file_path, %w[png jpg jpeg])
  if initial_position
    Internal.assert_type!(
      initial_position,
      Osb::Vector2,
      "initial_position"
    )
  end

  @layer = layer

  first_command = "Sprite,#{layer},#{origin},\"#{file_path}\""
  if initial_position
    first_command += ",#{initial_position.x},#{initial_position.y}"
  end
  # @type [Array<String>]

  @commands = [first_command]
end