Class: RubySketch::Sprite

Inherits:
Object
  • Object
show all
Includes:
Xot::Inspectable
Defined in:
lib/rubysketch/sprite.rb

Overview

Sprite object.

Instance Method Summary collapse

Constructor Details

#new(x, y, w, h) ⇒ Sprite #new(image: img) ⇒ Sprite #new(x, y, image: img) ⇒ Sprite #new(x, y, image: img, offset: off) ⇒ Sprite #new(x, y, image: img, shape: shp) ⇒ Sprite #new(x, y, image: img, offset: off, shape: shp) ⇒ Sprite #new(x, y, shape: shp) ⇒ Sprite

Initialize sprite object.

Overloads:

  • #new(x, y, w, h) ⇒ Sprite

    pos(x, y), size: [w, h]

    Parameters:

    • x (Numeric)

      x of the sprite position

    • y (Numeric)

      y of the sprite position

    • w (Numeric)

      width of the sprite

    • h (Numeric)

      height of the sprite

  • #new(image: img) ⇒ Sprite

    pos: [0, 0], size: [image.width, image.height]

    Parameters:

    • img (Image)

      sprite image

  • #new(x, y, image: img) ⇒ Sprite

    pos: [x, y], size: [image.width, image.height]

    Parameters:

    • x (Numeric)

      x of the sprite position

    • y (Numeric)

      y of the sprite position

    • img (Image)

      sprite image

  • #new(x, y, image: img, offset: off) ⇒ Sprite

    pos: [x, y], size: [image.width, image.height], offset: [offset.x, offset.x]

    Parameters:

    • x (Numeric)

      x of the sprite position

    • y (Numeric)

      y of the sprite position

    • img (Image)

      sprite image

    • off (Vector)

      offset of the sprite image

  • #new(x, y, image: img, shape: shp) ⇒ Sprite

    pos: [x, y], size: [image.width, image.height]

    Parameters:

    • x (Numeric)

      x of the sprite position

    • y (Numeric)

      y of the sprite position

    • img (Image)

      sprite image

  • #new(x, y, image: img, offset: off, shape: shp) ⇒ Sprite

    pos: [x, y], size: [image.width, image.height], offset: [offset.x, offset.x]

    Parameters:

    • x (Numeric)

      x of the sprite position

    • y (Numeric)

      y of the sprite position

    • img (Image)

      sprite image

    • off (Vector)

      offset of the sprite image

    • shp (Shape)

      shape of the sprite for physics calculations

  • #new(x, y, shape: shp) ⇒ Sprite

    pos: [x, y], size: [shape.width, shape.height]

    Parameters:

    • x (Numeric)

      x of the sprite position

    • y (Numeric)

      y of the sprite position

    • shp (Shape)

      shape of the sprite for physics calculations



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/rubysketch/sprite.rb', line 56

def initialize(
  x = 0, y = 0, w = nil, h = nil, image: nil, offset: nil, shape: nil,
  physics: true, context: nil)

  w ||= (image&.width  || shape&.width  || 0)
  h ||= (image&.height || shape&.height || 0)
  raise 'invalid size'  unless w >= 0 && h >= 0
  raise 'invalid image' if image && !image.getInternal__.is_a?(Rays::Image)
  raise 'invalid shape' if shape && !shape.getInternal__.is_a?(Reflex::Shape)

  @context__ = context || Context.context__
  @shape__   = shape
  @view__    = View.new(
    self, x: x, y: y, w: w, h: h,
    shape: @shape__, physics: physics, back: :white)
  @view__.set density: 1, friction: 0, restitution: 0

  self.image  = image  if image
  self.offset = offset if offset
end

Instance Method Details

#angleNumeric

Returns the rotation angle of the sprite.

Returns:

  • (Numeric)

    radians or degrees depending on angleMode()



368
369
370
# File 'lib/rubysketch/sprite.rb', line 368

def angle()
  @context__.fromDegrees__ @view__.angle
end

#angle=(angle) ⇒ Numeric

Sets the rotation angle of the sprite.

Parameters:

  • angle (Numeric)

    radians or degrees depending on angleMode()

Returns:

  • (Numeric)

    angle



378
379
380
381
# File 'lib/rubysketch/sprite.rb', line 378

def angle=(angle)
  @view__.angle = @context__.toDegrees__ angle
  angle
end

#angleFixed?Boolean

Returns the angle of the sprite is fixed or not.

Returns:

  • (Boolean)

    whether the rotation is fixed or not



398
399
400
# File 'lib/rubysketch/sprite.rb', line 398

def angleFixed?()
  @view__.fix_angle?
end

#bottomNumeric

Returns the bottom position of the sprite.

Returns:

  • (Numeric)

    bottom



268
269
270
# File 'lib/rubysketch/sprite.rb', line 268

def bottom()
  @view__.bottom
end

#bottom=(n) ⇒ Numeric

Set the bottom position of the sprite.

Parameters:

  • n (Numeric)

    sprite bottom position

Returns:

  • (Numeric)

    sprite bottom position



278
279
280
# File 'lib/rubysketch/sprite.rb', line 278

def bottom=(n)
  @view__.bottom = n
end

#capture=(bool) ⇒ Boolean

Captures key and mouse events

Parameters:

  • bool (Boolean)

    whether to capture

Returns:

  • (Boolean)

    the current state



113
114
115
116
# File 'lib/rubysketch/sprite.rb', line 113

def capture=(bool)
  @view__.capture = bool ? :all : []
  bool
end

#capturing?Boolean

Returns whether to capture or not

Returns:

  • (Boolean)

    whether to capture



122
123
124
# File 'lib/rubysketch/sprite.rb', line 122

def capturing?()
  @view__.capturing?
end

#centerVector

Returns the center position of the sprite.

Returns:

  • (Vector)

    center position



286
287
288
# File 'lib/rubysketch/sprite.rb', line 286

def center()
  Vector.new(x + w / 2, y + h / 2, z)
end

#center=(vec) ⇒ Vector #center=(ary) ⇒ Vector

Sets the center position of the sprite.

Overloads:

  • #center=(vec) ⇒ Vector

    Parameters:

    • vec (Vector)

      center position

  • #center=(ary) ⇒ Vector

    Parameters:

    • ary (Array<Numeric>)

      an array of centerX and centerY

Returns:

  • (Vector)

    center position



300
301
302
303
304
# File 'lib/rubysketch/sprite.rb', line 300

def center=(arg)
  x, y = *(arg.is_a?(Vector) ? arg.getInternal__.to_a : arg)
  self.pos = [x - w / 2, y - h / 2, z]
  self.center
end

#clickCountNumeric

Returns the mouse button click count on the sprite.

Returns:

  • (Numeric)

    click count



777
778
779
# File 'lib/rubysketch/sprite.rb', line 777

def clickCount()
  @view__.clickCount
end

#contact(&block) ⇒ nil

Defines contact block.

Examples:

Score increases when the player sprite touches a coin

playerSprite.contact do |o|
  score += 1 if o.coin?
end

Returns:

  • (nil)

    nil



967
968
969
970
# File 'lib/rubysketch/sprite.rb', line 967

def contact(&block)
  @view__.contact = block if block
  nil
end

#contact?(&block) ⇒ nil

Defines contact? block.

Examples:

Only collide with an enemy

playerSprite.contact? do |o|
  o.enemy?
end

Returns:

  • (nil)

    nil



995
996
997
998
# File 'lib/rubysketch/sprite.rb', line 995

def contact?(&block)
  @view__.willContact = block if block
  nil
end

#contactEnd(&block) ⇒ nil

Defines contactEnd block.

Examples:

Call jumping() when the player sprite leaves the ground sprite

playerSprite.contactEnd do |o|
  jumping if o == groundSprite
end

Returns:

  • (nil)

    nil



981
982
983
984
# File 'lib/rubysketch/sprite.rb', line 981

def contactEnd(&block)
  @view__.contactEnd = block if block
  nil
end

#densityNumeric Also known as: dens

Returns the density of the sprite.

Returns:

  • (Numeric)

    density



594
595
596
# File 'lib/rubysketch/sprite.rb', line 594

def density()
  @view__.density
end

#density=(n) ⇒ Numeric Also known as: dens=

Sets the density of the sprite.

Parameters:

  • n (Numeric)

    density

Returns:

  • (Numeric)

    density



604
605
606
607
# File 'lib/rubysketch/sprite.rb', line 604

def density=(n)
  @view__.density = n
  n
end

#draw(&block) ⇒ nil

Defines draw block.

Examples:

Draw on your own before and after default drawing

sprite.draw do |&defaultDrawSprite|
  rect 0, 0, 10, 10
  defaultDrawSprite.call
  text :hello, 10, 20
end

Returns:

  • (nil)

    nil



814
815
816
817
# File 'lib/rubysketch/sprite.rb', line 814

def draw(&block)
  @drawBlock__ = block if block
  nil
end

#dynamic=(bool) ⇒ Boolean

Sets whether the sprite is movable by the physics engine.

Parameters:

  • bool (Boolean)

    movable or not

Returns:

  • (Boolean)

    true if dynamic



585
586
587
588
# File 'lib/rubysketch/sprite.rb', line 585

def dynamic=(bool)
  @view__.dynamic = bool
  bool
end

#dynamic?Boolean

Returns whether the sprite is movable by the physics engine.

Returns:

  • (Boolean)

    true if dynamic



575
576
577
# File 'lib/rubysketch/sprite.rb', line 575

def dynamic?()
  @view__.dynamic?
end

#fixAngle(fix = true) ⇒ Sprite

Fixes the angle of the sprite.

Parameters:

  • fix (Boolean) (defaults to: true)

    fix rotation or not

Returns:



389
390
391
392
# File 'lib/rubysketch/sprite.rb', line 389

def fixAngle(fix = true)
  @view__.fix_angle = fix
  self
end

#frictionNumeric Also known as: fric

Returns the friction of the sprite.

Returns:

  • (Numeric)

    friction



613
614
615
# File 'lib/rubysketch/sprite.rb', line 613

def friction()
  @view__.friction
end

#friction=(n) ⇒ Numeric Also known as: fric=

Sets the friction of the sprite.

Parameters:

  • n (Numeric)

    friction

Returns:

  • (Numeric)

    friction



623
624
625
626
# File 'lib/rubysketch/sprite.rb', line 623

def friction=(n)
  @view__.friction = n
  n
end

#fromScreen(vec) ⇒ Vector

Converts a vector from the screen coordinate

Parameters:

  • vec (Vector)

    screen coordinate vector

Returns:

  • (Vector)

    sprite coordinate vector



677
678
679
# File 'lib/rubysketch/sprite.rb', line 677

def fromScreen(vec)
  @view__.from_parent(vec.getInternal__).toVector
end

#heightNumeric Also known as: h

Returns the height of the sprite.

Returns:

  • (Numeric)

    height



345
346
347
# File 'lib/rubysketch/sprite.rb', line 345

def height()
  @view__.height
end

#height=(h) ⇒ Numeric Also known as: h=

Sets the height of the sprite.

Parameters:

  • h (Numeric)

    height

Returns:

  • (Numeric)

    height



355
356
357
# File 'lib/rubysketch/sprite.rb', line 355

def height=(h)
  @view__.height = h
end

#hidden?Boolean

Returns the sprite is visible

Returns:

  • (Boolean)

    true: invisible, false: visible



103
104
105
# File 'lib/rubysketch/sprite.rb', line 103

def hidden?()
  @view__.hidden?
end

#hideSprite

Hides the sprite

Since one call to “hide()” increases the hide count, it is necessary to call “show()” n times to make the sprite visible again after calling “hide()” n times.

Returns:



94
95
96
97
# File 'lib/rubysketch/sprite.rb', line 94

def hide()
  @view__.hide
  self
end

#imageImage

Returns the image of the sprite.

Returns:

  • (Image)

    sprite image



490
491
492
# File 'lib/rubysketch/sprite.rb', line 490

def image()
  @image__
end

#image=(img) ⇒ Image

Sets the sprite image.

Parameters:

  • img (Image)

    sprite image

Returns:

  • (Image)

    sprite image



500
501
502
# File 'lib/rubysketch/sprite.rb', line 500

def image=(img)
  @image__ = img
end

#keyString

Returns the last key that was pressed or released.

Returns:

  • (String)

    last key



695
696
697
# File 'lib/rubysketch/sprite.rb', line 695

def key()
  @view__.key
end

#keyCodeSymbol

Returns the last key code that was pressed or released.

Returns:

  • (Symbol)

    last key code



703
704
705
# File 'lib/rubysketch/sprite.rb', line 703

def keyCode()
  @view__.keyCode
end

#keyIsDown(keyCode) ⇒ Boolean

Returns whether or not the key is currently pressed.

Parameters:

  • keyCode (Numeric)

    code for the key

Returns:

  • (Boolean)

    is the key pressed or not



721
722
723
# File 'lib/rubysketch/sprite.rb', line 721

def keyIsDown(keyCode)
  @view__.keysPressed.include? keyCode
end

#keyIsPressedBoolean

Returns whether or not any key is pressed.

Returns:

  • (Boolean)

    is any key pressed or not



711
712
713
# File 'lib/rubysketch/sprite.rb', line 711

def keyIsPressed()
  not @view__.keysPressed.empty?
end

#keyIsRepeatedBoolean

Returns whether the current key is repeated or not.

Returns:

  • (Boolean)

    is the key repeated or not



729
730
731
# File 'lib/rubysketch/sprite.rb', line 729

def keyIsRepeated()
  @view__.keyRepeat
end

#keyPressed(&block) ⇒ Boolean

Defines keyPressed block.

Returns:

  • (Boolean)

    is any key pressed or not



823
824
825
826
# File 'lib/rubysketch/sprite.rb', line 823

def keyPressed(&block)
  @view__.keyPressed = block if block
  keyIsPressed
end

#keyReleased(&block) ⇒ nil

Defines keyReleased block.

Returns:

  • (nil)

    nil



832
833
834
835
# File 'lib/rubysketch/sprite.rb', line 832

def keyReleased(&block)
  @view__.keyReleased = block if block
  nil
end

#keyTyped(&block) ⇒ nil

Defines keyTyped block.

Returns:

  • (nil)

    nil



841
842
843
844
# File 'lib/rubysketch/sprite.rb', line 841

def keyTyped(&block)
  @view__.keyTyped = block if block
  nil
end

#leftNumeric

Returns the left position of the sprite.

Returns:

  • (Numeric)

    left position



213
214
215
# File 'lib/rubysketch/sprite.rb', line 213

def left()
  @view__.left
end

#left=(n) ⇒ Numeric

Set the left position of the sprite.

Parameters:

  • n (Numeric)

    sprite left position

Returns:

  • (Numeric)

    sprite left position



223
224
225
226
# File 'lib/rubysketch/sprite.rb', line 223

def left=(n)
  @view__.left = n
  n
end

#mouseButtonLEFT, ...

Returns the mouse button clicked on the sprite.

Returns:

  • (LEFT, RIGHT, CENTER)

    mouse button



769
770
771
# File 'lib/rubysketch/sprite.rb', line 769

def mouseButton()
  @view__.mouseButton
end

#mouseClicked(&block) ⇒ nil

Defines mouseClicked block.

Examples:

Print mouse states on mouse click

sprite.mouseClicked do
  p [sprite.mouseX, sprite.mouseY, sprite.mouseButton]
end

Returns:

  • (nil)

    nil



911
912
913
914
# File 'lib/rubysketch/sprite.rb', line 911

def mouseClicked(&block)
  @view__.mouseClicked = block if block
  nil
end

#mouseDragged(&block) ⇒ nil

Defines mouseDragged block.

Examples:

Print mouse states on mouse drag

sprite.mouseDragged do
  p [sprite.mouseX, sprite.mouseY, sprite.pmouseX, sprite.pmouseY]
end

Returns:

  • (nil)

    nil



897
898
899
900
# File 'lib/rubysketch/sprite.rb', line 897

def mouseDragged(&block)
  @view__.mouseDragged = block if block
  nil
end

#mouseMoved(&block) ⇒ nil

Defines mouseMoved block.

Examples:

Print mouse states on mouse move

sprite.mouseMoved do
  p [sprite.mouseX, sprite.mouseY, sprite.pmouseX, sprite.pmouseY]
end

Returns:

  • (nil)

    nil



883
884
885
886
# File 'lib/rubysketch/sprite.rb', line 883

def mouseMoved(&block)
  @view__.mouseMoved = block if block
  nil
end

#mousePressed(&block) ⇒ Boolean

Defines mousePressed block.

Examples:

Print mouse states on mouse press

sprite.mousePressed do
  p [sprite.mouseX, sprite.mouseY, sprite.mouseButton]
end

Returns:

  • (Boolean)

    is any mouse button pressed or not



855
856
857
858
# File 'lib/rubysketch/sprite.rb', line 855

def mousePressed(&block)
  @view__.mousePressed = block if block
  @view__.mousePressed?
end

#mouseReleased(&block) ⇒ nil

Defines mouseReleased block.

Examples:

Print mouse states on mouse release

sprite.mouseReleased do
  p [sprite.mouseX, sprite.mouseY, sprite.mouseButton]
end

Returns:

  • (nil)

    nil



869
870
871
872
# File 'lib/rubysketch/sprite.rb', line 869

def mouseReleased(&block)
  @view__.mouseReleased = block if block
  nil
end

#mouseXNumeric

Returns the x-position of the mouse in the sprite coordinates.

Returns:

  • (Numeric)

    x position



737
738
739
# File 'lib/rubysketch/sprite.rb', line 737

def mouseX()
  @view__.mouseX
end

#mouseYNumeric

Returns the y-position of the mouse in the sprite coordinates.

Returns:

  • (Numeric)

    y position



745
746
747
# File 'lib/rubysketch/sprite.rb', line 745

def mouseY()
  @view__.mouseY
end

#offsetVector

Returns the offset of the sprite image.

Returns:

  • (Vector)

    offset of the sprite image



508
509
510
# File 'lib/rubysketch/sprite.rb', line 508

def offset()
  @offset__
end

#offset=(vec) ⇒ Vector #offset=(ary) ⇒ Vector

Sets the offset of the sprite image.

Overloads:

  • #offset=(vec) ⇒ Vector

    Parameters:

  • #offset=(ary) ⇒ Vector

    Parameters:

    • ary (Array<Numeric>)

      an array of offsetX and offsetY

Returns:

  • (Vector)

    offset of the sprite image



522
523
524
525
526
527
528
529
530
531
# File 'lib/rubysketch/sprite.rb', line 522

def offset=(arg)
  @offset__ =
    case arg
    when Vector then arg
    when Array  then Vector.new(arg[0] || 0, arg[1] || 0)
    when nil    then nil
    else raise ArgumentError
    end
  offset
end

#oxNumeric

Returns the x-axis offset of the sprite image.

Returns:

  • (Numeric)

    offset.x



537
538
539
# File 'lib/rubysketch/sprite.rb', line 537

def ox()
  @offset__&.x || 0
end

#ox=(x) ⇒ Numeric

Sets the x-axis offset of the sprite image.

Parameters:

  • x (Numeric)

    x-axis offset

Returns:

  • (Numeric)

    offset.x



547
548
549
550
# File 'lib/rubysketch/sprite.rb', line 547

def ox=(x)
  self.offset = [x, oy]
  x
end

#oyNumeric

Returns the y-axis offset of the sprite image.

Returns:

  • (Numeric)

    offset.y



556
557
558
# File 'lib/rubysketch/sprite.rb', line 556

def oy()
  @offset__&.y || 0
end

#oy=(y) ⇒ Numeric

Sets the y-axis offset of the sprite image.

Parameters:

  • y (Numeric)

    y-axis offset

Returns:

  • (Numeric)

    offset.y



566
567
568
569
# File 'lib/rubysketch/sprite.rb', line 566

def oy=(y)
  self.offset = [ox, y]
  y
end

#pivotArray<Numeric>

Returns the rotation center of the sprite.

Returns:

  • (Array<Numeric>)
    pivotX, pivotY


406
407
408
# File 'lib/rubysketch/sprite.rb', line 406

def pivot()
  @view__.pivot.to_a[0, 2]
end

#pivot=(array) ⇒ Array<Numeric>

Sets the rotation center of the sprite.

0.0, 0.0

is the left-top, [1.0, 1.0] is the right-bottom, and [0.5, 0.5] is the center.

Parameters:

  • array (Array<Numeric>)

    an array of pivotX and pivotY

Returns:

  • (Array<Numeric>)
    pivotX, pivotY


417
418
419
420
# File 'lib/rubysketch/sprite.rb', line 417

def pivot=(array)
  @view__.pivot = array
  pivot
end

#pmouseXNumeric

Returns the previous x-position of the mouse in the sprite coordinates.

Returns:

  • (Numeric)

    x position



753
754
755
# File 'lib/rubysketch/sprite.rb', line 753

def pmouseX()
  @view__.pmouseX
end

#pmouseYNumeric

Returns the previous y-position of the mouse in the sprite coordinates.

Returns:

  • (Numeric)

    y position



761
762
763
# File 'lib/rubysketch/sprite.rb', line 761

def pmouseY()
  @view__.pmouseY
end

#positionVector Also known as: pos

Returns the position of the sprite.

Returns:



130
131
132
# File 'lib/rubysketch/sprite.rb', line 130

def position()
  @view__.position.toVector
end

#position=(vec) ⇒ Vector #position=(ary) ⇒ Vector Also known as: pos=

Sets the position of the sprite.

Overloads:

  • #position=(vec) ⇒ Vector

    Parameters:

    • vec (Vector)

      position vector

  • #position=(ary) ⇒ Vector

    Parameters:

    • ary (Array<Numeric>)

      an array of positionX and positionY

Returns:



144
145
146
147
# File 'lib/rubysketch/sprite.rb', line 144

def position=(arg)
  @view__.position = arg.is_a?(Vector) ? arg.getInternal__ : arg
  arg
end

#restitutionNumeric Also known as: rest

Returns the restitution of the sprite.

Returns:

  • (Numeric)

    restitution



632
633
634
# File 'lib/rubysketch/sprite.rb', line 632

def restitution()
  @view__.restitution
end

#restitution=(n) ⇒ Numeric Also known as: rest=

Sets the restitution of the sprite.

Parameters:

  • n (Numeric)

    restitution

Returns:

  • (Numeric)

    restitution



642
643
644
645
# File 'lib/rubysketch/sprite.rb', line 642

def restitution=(n)
  @view__.restitution = n
  n
end

#rightNumeric

Returns the right position of the sprite.

Returns:

  • (Numeric)

    right position



250
251
252
# File 'lib/rubysketch/sprite.rb', line 250

def right()
  @view__.right
end

#right=(n) ⇒ Numeric

Set the right position of the sprite.

Parameters:

  • n (Numeric)

    sprite right position

Returns:

  • (Numeric)

    sprite right position



260
261
262
# File 'lib/rubysketch/sprite.rb', line 260

def right=(n)
  @view__.right = n
end

#sensor=(state) ⇒ Boolean

Set this sprite as a sensor object. Sensor object receives contact events, but no collisions.

Returns:

  • (Boolean)

    sensor or not



659
660
661
# File 'lib/rubysketch/sprite.rb', line 659

def sensor=(state)
  @view__.sensor = state
end

#sensor?Boolean

Returns whether the shape is a sensor or not.

Returns:

  • (Boolean)

    sensor or not



667
668
669
# File 'lib/rubysketch/sprite.rb', line 667

def sensor?()
  @view__.sensor?
end

#showSprite

Shows the sprite

Since one call to “hide()” increases the hide count, it is necessary to call “show()” n times to make the sprite visible again after calling “hide()” n times.

Returns:



83
84
85
86
# File 'lib/rubysketch/sprite.rb', line 83

def show()
  @view__.show
  self
end

#sizeVector

Returns the size of the sprite.

Returns:



310
311
312
# File 'lib/rubysketch/sprite.rb', line 310

def size()
  @view__.size.toVector
end

#size=(arg) ⇒ Vector

Returns the size of the sprite.

Returns:



318
319
320
321
# File 'lib/rubysketch/sprite.rb', line 318

def size=(arg)
  @view__.size = arg.is_a?(Vector) ? arg.getInternal__ : arg
  arg
end

#topNumeric

Returns the top position of the sprite.

Returns:

  • (Numeric)

    top position



232
233
234
# File 'lib/rubysketch/sprite.rb', line 232

def top()
  @view__.top
end

#top=(n) ⇒ Numeric

Set the top position of the sprite.

Parameters:

  • n (Numeric)

    sprite top position

Returns:

  • (Numeric)

    sprite top position



242
243
244
# File 'lib/rubysketch/sprite.rb', line 242

def top=(n)
  @view__.top = n
end

#toScreen(vec) ⇒ Vector

Converts a vector to the screen coordinate

Parameters:

  • vec (Vector)

    sprite coordinate vector

Returns:

  • (Vector)

    screen coordinate vector



687
688
689
# File 'lib/rubysketch/sprite.rb', line 687

def toScreen(vec)
  @view__.to_parent(vec.getInternal__).toVector
end

#touchEnded(&block) ⇒ nil

Defines touchEnded block.

Examples:

Print touches on touch end

sprite.touchEnded do
  p sprite.touches
end

Returns:

  • (nil)

    nil



939
940
941
942
# File 'lib/rubysketch/sprite.rb', line 939

def touchEnded(&block)
  @view__.touchEnded = block if block
  nil
end

#touchesArray<Touch>

Returns the touch objects touched on the sprite.

Returns:

  • (Array<Touch>)

    touches



785
786
787
# File 'lib/rubysketch/sprite.rb', line 785

def touches()
  @view__.touches
end

#touchMoved(&block) ⇒ nil

Defines touchMoved block.

Examples:

Print touches on touch move

sprite.touchMoved do
  p sprite.touches
end

Returns:

  • (nil)

    nil



953
954
955
956
# File 'lib/rubysketch/sprite.rb', line 953

def touchMoved(&block)
  @view__.touchMoved = block if block
  nil
end

#touchStarted(&block) ⇒ nil

Defines touchStarted block.

Examples:

Print touches on touch start

sprite.touchStarted do
  p sprite.touches
end

Returns:

  • (nil)

    nil



925
926
927
928
# File 'lib/rubysketch/sprite.rb', line 925

def touchStarted(&block)
  @view__.touchStarted = block if block
  nil
end

#update(&block) ⇒ nil

Defines update block.

Examples:

vx is updated every frame

sprite.update do
  self.vx *= 0.9
end

Returns:

  • (nil)

    nil



798
799
800
801
# File 'lib/rubysketch/sprite.rb', line 798

def update(&block)
  @view__.update = block if block
  nil
end

#velocityVector Also known as: vel

Returns the velocity of the sprite.

Returns:



426
427
428
# File 'lib/rubysketch/sprite.rb', line 426

def velocity()
  @view__.velocity.toVector
end

#velocity=(vec) ⇒ Vector #velocity=(ary) ⇒ Vector Also known as: vel=

Sets the velocity of the sprite.

Overloads:

  • #velocity=(vec) ⇒ Vector

    Parameters:

    • vec (Vector)

      velocity vector

  • #velocity=(ary) ⇒ Vector

    Parameters:

    • ary (Array<Numeric>)

      an array of velocityX and velocityY

Returns:



440
441
442
443
# File 'lib/rubysketch/sprite.rb', line 440

def velocity=(arg)
  @view__.velocity = arg.is_a?(Vector) ? arg.getInternal__ : arg
  arg
end

#vxNumeric

Returns the x-axis velocity of the sprite.

Returns:

  • (Numeric)

    velocity.x



449
450
451
# File 'lib/rubysketch/sprite.rb', line 449

def vx()
  @view__.velocity.x
end

#vx=(n) ⇒ Numeric

Sets the x-axis velocity of the sprite.

Parameters:

  • n (Numeric)

    x-axis velocity

Returns:

  • (Numeric)

    velocity.x



459
460
461
462
# File 'lib/rubysketch/sprite.rb', line 459

def vx=(n)
  @view__.velocity = @view__.velocity.tap {|v| v.x = n}
  n
end

#vyNumeric

Returns the y-axis velocity of the sprite.

Returns:

  • (Numeric)

    velocity.y



468
469
470
# File 'lib/rubysketch/sprite.rb', line 468

def vy()
  @view__.velocity.y
end

#vy=(n) ⇒ Numeric

Sets the y-axis velocity of the sprite.

Parameters:

  • n (Numeric)

    y-axis velocity

Returns:

  • (Numeric)

    velocity.y



478
479
480
481
# File 'lib/rubysketch/sprite.rb', line 478

def vy=(n)
  @view__.velocity = @view__.velocity.tap {|v| v.y = n}
  n
end

#widthNumeric Also known as: w

Returns the width of the sprite.

Returns:

  • (Numeric)

    width



327
328
329
# File 'lib/rubysketch/sprite.rb', line 327

def width()
  @view__.width
end

#width=(w) ⇒ Numeric Also known as: w=

Sets the width of the sprite.

Parameters:

  • w (Numeric)

    width

Returns:

  • (Numeric)

    width



337
338
339
# File 'lib/rubysketch/sprite.rb', line 337

def width=(w)
  @view__.width = w
end

#xNumeric

Returns the x-coordinate position of the sprite.

Returns:

  • (Numeric)

    sprite position x



153
154
155
# File 'lib/rubysketch/sprite.rb', line 153

def x()
  @view__.x
end

#x=(n) ⇒ Numeric

Set the x-coordinate position of the sprite.

Parameters:

  • n (Numeric)

    sprite position x

Returns:

  • (Numeric)

    sprite position x



163
164
165
166
# File 'lib/rubysketch/sprite.rb', line 163

def x=(n)
  @view__.x = n
  n
end

#yNumeric

Returns the y-coordinate position of the sprite.

Returns:

  • (Numeric)

    sprite position y



172
173
174
# File 'lib/rubysketch/sprite.rb', line 172

def y()
  @view__.y
end

#y=(n) ⇒ Numeric

Set the y-coordinate position of the sprite.

Parameters:

  • n (Numeric)

    sprite position y

Returns:

  • (Numeric)

    sprite position y



182
183
184
185
# File 'lib/rubysketch/sprite.rb', line 182

def y=(n)
  @view__.y = n
  n
end

#zNumeric

Returns the z-coordinate position of the sprite.

Returns:

  • (Numeric)

    sprite position z



191
192
193
# File 'lib/rubysketch/sprite.rb', line 191

def z()
  @view__.z
end

#z=(n) ⇒ Numeric

Set the z-coordinate position of the sprite.

Parameters:

  • n (Numeric)

    sprite position z

Returns:

  • (Numeric)

    sprite position z



201
202
203
204
# File 'lib/rubysketch/sprite.rb', line 201

def z=(n)
  @view__.z = n
  n
end