package com.tacoid.superflu.actors;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.tacoid.superflu.GameScreen;
import com.tacoid.superflu.SuperFlu;
import com.tacoid.superflu.entities.Transfert;
import com.tacoid.superflu.entities.Ville;
public class TransfertActor extends Actor{
private final Transfert transfert;
private final TextureRegion avion;
public TransfertActor(Transfert transfert) {
SuperFlu superflu = SuperFlu.getInstance();
this.transfert = transfert;
Texture texAvion = superflu.manager.get("images/avion.png", Texture.class);
avion = new TextureRegion(texAvion, texAvion.getWidth(), texAvion.getHeight());
width = avion.getRegionWidth();
height = avion.getRegionHeight();
}
@Override
public void draw(SpriteBatch batch, float arg1) {
int depart_x, arrivee_x;
Ville depart = transfert.getDepart();
Ville arrivee = transfert.getArrivee();
if (depart.getX() < arrivee.getX()) {
depart_x = depart.getX() + (transfert.isDirect() ? 0 : 1024);
arrivee_x = arrivee.getX();
} else {
depart_x = depart.getX();
arrivee_x = arrivee.getX() + (transfert.isDirect() ? 0 : 1024);
}
double angle = (180/Math.PI) * Math.atan2(arrivee.getY() - depart.getY(), arrivee_x - depart_x);
double avancement = ((double)(GameScreen.getInstance().getGameLogic().getTime() - transfert.getTempsDepart())) / ((double)(transfert.getTempsArrivee() - transfert.getTempsDepart()));
float zoom = 0.25f + 0.75f*(float)Math.sin(avancement*Math.PI);
batch.draw(avion,
(int)(depart_x*(1 - avancement) + arrivee_x*avancement) % 1024 - width / 2,
(int)(depart.getY()*(1 - avancement) + arrivee.getY()*avancement - height / 2),
width/2,
height/2,
avion.getRegionWidth(),
avion.getRegionHeight(),
zoom,
zoom,
(float)angle);
//draw(TextureRegion region, float x, float y, float originX, float originY, float width, float height, float scaleX, float scaleY, float rotation)
/*sprite.draw( + ScreenManager.getInstance().getOrigineCarteX(),
+ ScreenManager.getInstance().getOrigineCarteY(),
(float)angle,
zoom);*/
}
@Override
public Actor hit(float arg0, float arg1) {
// TODO Auto-generated method stub
return null;
}
}