package org.open2jam.game.speed; /** * The Speed interface handles calculation and manipulation of speed multiplier * The speed multiplier affects all notes in the game. * * @author Thai Pangsakulyanont */ public interface Speed { /** * Decreases the speed multiplier. */ void decrease(); /** * Returns the current speed multiplier to be rendered. * @return the current speed multiplier */ double getCurrentSpeed(); /** * Returns the "target" speed multiplier. * @return the target speed multiplier */ double getSpeed(); /** * Increases the speed multiplier. */ void increase(); /** * Sets the target speed multiplier. * @param speed the target speed multiplier */ void setSpeed(double speed); /** * Updates this speed multiplier. This method should be invoked every frame. * @param delta time difference from last frame */ void update(double delta); }