Je suis en train de faire disparaître l'image puis fondu et cela fonctionne mais l'image de fond est également fondu, puis fondu Aussi lorsque j'applique l'action de rotation (qui est commenté) il tourne l'image une seule fois bien que je l'ai mis sur l'événement Retouche, tandis que le fondu entrant et sortant est appliqué à chaque toucher mais fondu appliqué sur l'image et le fond : ici où j'applique l'action dans cette classe:Libgdx actions à l'image est appliquée à des acteurs entiers
public class MainButtons {
public Viewport viewport;
public Stage stage;
public boolean centerPressed;
public Image fire;
public Image center;
public Sound flap;
public OrthographicCamera camera;
public static Table table;
//Constructor.
public MainButtons(SpriteBatch spriteBatch) {
camera = new OrthographicCamera();
viewport = new StretchViewport(KidTele.V_WIDTH,KidTele.V_HIEGH,camera);
stage = new Stage(viewport, spriteBatch);
//InputMultiplexer this is why only input handling from controller
flap= Gdx.audio.newSound(Gdx.files.internal("one.mp3"));
Gdx.input.setInputProcessor(stage);
fire= new Image(new Texture("cars/fire.png"));
//buttonone.setSize(10, 5);
menuTable();
defineCenter();
}
public void defineCenter()
{
center=new Image(new Texture(Gdx.files.internal("0.png")));
center.setBounds(viewport.getWorldWidth()/5f, viewport.getWorldHeight()/3f, viewport.getWorldWidth()/1.5f, viewport.getWorldHeight()/3f);
center.addListener(new InputListener() {
@Override
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
centerPressed = true;
return true;
}
@Override
public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
//center.setOrigin(center.getWidth()/2,center.getHeight()/2);
//center.addAction(Actions.sequence(Actions.rotateTo(360, 2), Actions.fadeIn(1)));
center.addAction(Actions.sequence(Actions.fadeOut(1), Actions.fadeIn(1)));
centerPressed = false;
}
});
//center.setVisible(false);
stage.addActor(center);
}
public void draw() {
stage.draw();
}
public void resize(int width, int height) {
viewport.update(width, height);
}
}
ce qui est le code de l'écran:
public class PlayScreen implements Screen {
private KidTele game;
private OrthographicCamera gamecam;
private Viewport gameport;
private World world;
private Box2DDebugRenderer b2dr;
private MainButtons mainButtons;
private Texture background;
private Sound flap;
public PlayScreen(KidTele game)
{
this.game=game;
gamecam=new OrthographicCamera();
gameport=new StretchViewport(KidTele.V_WIDTH,KidTele.V_HIEGH,gamecam);
//stage=new Stage(gameport,((KidTele) game).batch);
background=new Texture("background2.png");
gamecam.position.set(gameport.getWorldWidth()/2f,gameport.getWorldHeight()/2f,0);
b2dr=new Box2DDebugRenderer();
world=new World(new Vector2(0,0.8f),true);
flap= Gdx.audio.newSound(Gdx.files.internal("one.mp3"));
mainButtons=new MainButtons(game.batch);
}
@Override
public void show() {
}
public void handleinput(float dt)
{
if(Gdx.input.isKeyJustPressed(Input.Keys.BACK)) {
mainButtons.stopMusic();
game.setScreen(new PlayScreen(game));
}
}
public void update(float dt)
{
handleinput(dt);
world.step(1 /60f, 6, 2);
//player.update(dt);
gamecam.update();
}
@Override
public void render(float delta) {
update(delta);
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
b2dr.render(world, gamecam.combined);
game.batch.setProjectionMatrix(gamecam.combined);
game.batch.begin();
game.batch.draw(background, 0, 0, gameport.getWorldWidth(), gameport.getWorldHeight());
game.batch.end();
mainButtons.stage.act();
mainButtons.stage.draw();
mainButtons.draw();
}
@Override
public void resize(int width, int height) {
gameport.update(width, height);
mainButtons.resize(width, height);
}
Merci beaucoup veryyyy @ Tenfour04, il fonctionne très bien –