Sha256: f9b6885afdcd692c7587e683b117409934e7befb174764e1a2e5e0e105ccbeb8
Contents?: true
Size: 1.13 KB
Versions: 1
Compression:
Stored size: 1.13 KB
Contents
require 'singleton' require 'forwardable' module Tsuku class Tweener include Singleton def initialize super @tweens = [] @running = true end def add_tween(target, final_property_values, duration_ms, easing = :linear) tween = Tween.new(target, final_property_values, duration_ms, easing) tween.start @tweens << tween tween end def delete_tween(tween) tween.pause raise StandardError.new("Tween not found") unless @tweens.include?(tween) @tweens.delete(tween) @tweens end def step(delta_ms) return if !@running @tweens.reverse_each do |tween| tween.step(delta_ms) if tween.completed? @tweens.delete(tween) end end end def pause @running = false end def resume @running = true end class << self extend Forwardable # delegate all instance methods to singleton instance to allow calling # methods without '.instance' (i.e. Tweener.add_tween) def_delegators :instance, *Tweener.instance_methods(false) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
tsuku-0.2.0 | lib/tsuku/tweener.rb |