package info.u250.c2d.tests.mesh;
import info.u250.c2d.engine.Engine;
import info.u250.c2d.engine.EngineDrive;
import info.u250.c2d.engine.Scene;
import info.u250.c2d.engine.resources.AliasResourceManager;
import com.badlogic.gdx.InputProcessor;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType;
import com.badlogic.gdx.math.Interpolation;
import com.badlogic.gdx.math.MathUtils;
public class JumpyLineTest extends Engine {
@Override
protected EngineDrive onSetupEngineDrive() {
return new EngineX();
}
@Override
public void dispose () {
super.dispose();
}
private class EngineX implements EngineDrive{
@Override
public void onResourcesRegister(AliasResourceManager<String> reg) {
}
@Override
public void dispose() {}
@Override
public EngineOptions onSetupEngine() {
final EngineOptions opt = new EngineOptions(new String[]{},800,480);
return opt;
}
private float _myAmplitude = 0;
private float _myFrequency = 1;
private float _myPhase = 0;
private float _myTimer = 0;
@Override
public void onLoadedResourcesCompleted() {
final int width = (int)Engine.getWidth();
Engine.setMainScene(new Scene() {
@Override
public void render(float delta) {
Engine.getShapeRenderer().begin(ShapeType.Point);
Engine.getShapeRenderer().setColor(Color.YELLOW);
for(int x = 0; x < width;x++){
float blend = 1 - Math.abs(width/2 - x)/(float)width/2f;
blend =(float) Math.pow(blend, 3);
float y = MathUtils.cosDeg(x / (float)width * 360 * 2 * 5 + _myPhase) * _myAmplitude * blend;
Engine.getShapeRenderer().point(x,y+Engine.getHeight()/2,0);
}
Engine.getShapeRenderer().end();
}
@Override
public InputProcessor getInputProcessor() {
return null;
}
@Override
public void update(float delta) {
_myTimer += delta;
_myFrequency = Interpolation.bounceIn.apply(_myTimer / 5) * 4;
_myPhase = Interpolation.bounceOut.apply(_myTimer / 20) * 360 * 10;
_myAmplitude = (MathUtils.cosDeg(_myTimer * 360 * _myFrequency + 360) + 1)/2 * 100 * Interpolation.bounceOut.apply(1 - _myTimer / 5);
if(_myTimer > 5){
_myTimer = 0;
_myFrequency = 1;
}
}
@Override
public void hide() {
}
@Override
public void show() {
}
});
}
}
}