    # File lib/rubygame/clock.rb, line 442
        def tick()

          # how long since the last tick?
          passed = 0
          if @last_tick
            passed += self.class.runtime() - @last_tick
          end

          if @target_frametime
            extra = @target_frametime - passed
            if( extra > 0 )
              passed += self.class.delay( extra, @granularity, @nice )
            end
          end

          if @tick_events
            return (@tick_cache[passed] or
                     (@tick_cache[passed] =
                      Rubygame::Events::ClockTicked.new( passed ) ))
          else
            return passed
          end

        ensure
          @last_tick = self.class.runtime()
          @ticks += 1

          # Save the frametime for framerate calculation
          @samples.push(passed)
          @samples.shift if @samples.length > @max_samples
        end