Class: Shake

Inherits:
Object
  • Object
show all
Defined in:
lib/rubysketch/solitaire/common/shake.rb

Instance Method Summary collapse

Constructor Details

#initialize(length, vector) ⇒ Shake

Returns a new instance of Shake.



6
7
8
# File 'lib/rubysketch/solitaire/common/shake.rb', line 6

def initialize(length, vector)
  @length, @vector = length, vector
end

Instance Method Details

#updateObject



10
11
12
13
14
15
# File 'lib/rubysketch/solitaire/common/shake.rb', line 10

def update()
  @length *=  0.8 if @length
  @vector *= -0.8 if @vector
  v = vector
  @length = @vector = nil if v && v.mag < 1
end

#vectorObject



17
18
19
20
21
22
# File 'lib/rubysketch/solitaire/common/shake.rb', line 17

def vector()
  return nil unless @length || @vector
  v  = @vector&.dup&.rotate(rand -20.0...20.0) || Vector.random2D
  v *= @length if @length
  v
end