Versatile Java game engine with pluggable backends (this was used in Rogue, I think)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gamecore/src/mightypork/gamecore/audio/players/EffectPlayer.java

66 lines
1.3 KiB

package mightypork.gamecore.audio.players;
import mightypork.gamecore.audio.DeferredAudio;
import mightypork.gamecore.audio.Volume;
import mightypork.utils.math.constraints.vect.Vect;
/**
* Player for one-off effects
*
* @author Ondřej Hruška (MightyPork)
*/
public class EffectPlayer extends BaseAudioPlayer {
/**
* @param track audio resource
* @param basePitch base pitch (pitch multiplier)
* @param baseGain base gain (volume multiplier)
* @param volume volume control
*/
public EffectPlayer(DeferredAudio track, double basePitch, double baseGain, Volume volume) {
super(track, (float) basePitch, (float) baseGain, volume);
}
/**
* Play at listener
*
* @param pitch play pitch
* @param gain play gain
*/
public void play(double pitch, double gain)
{
if (!hasAudio()) return;
getAudio().play(computePitch(pitch), computeGain(gain), false);
}
/**
* Play at listener
*
* @param gain play gain
*/
public void play(double gain)
{
play(1, gain);
}
/**
* Play at given position
*
* @param pitch play pitch
* @param gain play gain
* @param pos play position
*/
public void play(double pitch, double gain, Vect pos)
{
if (!hasAudio()) return;
getAudio().play(computePitch(pitch), computeGain(gain), false, pos);
}
}