[英]Playing sound while tweening
在嘗試實現我的想法時,我遇到了一個問題。
我有一個圖像,我在alpha層之間,淡入它,一秒鍾后淡出它。 在這里,我希望在完全淡入的時候玩馬里奧硬幣。
我已嘗試為此實現不同的回調,但無論哪種方式,我都會在補間之前或補間之后播放聲音。
代碼段:
Tween.set(splash, SpriteAccessor.ALPHA).target(0).start(tweenManager);
Tween.to(splash, SpriteAccessor.ALPHA, 2).target(1).repeatYoyo(1, 0.5f).setCallback(new TweenCallback() {
@Override
public void onEvent(int type, BaseTween<?> source) {
((Game) Gdx.app.getApplicationListener()).setScreen(new MainMenu());
}
}).start(tweenManager);
這樣做的:
Tween.set(splash, SpriteAccessor.ALPHA).target(0).start(tweenManager);
Tween.to(splash, SpriteAccessor.ALPHA, 2).target(1).repeatYoyo(1, 0.5f).setCallback(new TweenCallback() {
@Override
public void onEvent(int type, BaseTween<?> source) {
SoundManager.PlayIntro();
((Game) Gdx.app.getApplicationListener()).setScreen(new MainMenu());
}
}).start(tweenManager);
在補間后播放聲音。
和:
Tween.set(splash, SpriteAccessor.ALPHA).target(0).start(tweenManager)
.setCallback(new TweenCallback() {
@Override
public void onEvent(int type, BaseTween<?> source) {
SoundManager.PlayIntro();
}
});
Tween.to(splash, SpriteAccessor.ALPHA, 2).target(1).repeatYoyo(1, 0.5f).setCallback(new TweenCallback() {
@Override
public void onEvent(int type, BaseTween<?> source) {
((Game) Gdx.app.getApplicationListener()).setScreen(new MainMenu());
}
}).start(tweenManager);
之前播放。 我如何實現我想要的?
您可以通過使用補間引擎中的時間軸並創建序列來實現此目的,這是我對這些情況最常用的內容。
這應該適合你:
Timeline.createSequence().beginSequence()
.push(Tween.to(splash, SpriteAccessor.ALPHA, 0).target(0))
.push(Tween.to(splash, SpriteAccessor.ALPHA, 2).target(1).setCallback(new TweenCallback() {
@Override
public void onEvent(int arg0, BaseTween<?> arg1) {
SoundManager.PlayIntro();
}
}))
.pushPause(0.5f)
.push(Tween.to(splash, SpriteAccessor.ALPHA, 2f).target(0)).setCallback(new TweenCallback() {
@Override
public void onEvent(int arg0, BaseTween<?> arg1) {
((Game) Gdx.app.getApplicationListener()).setScreen(new MainMenu());
}
})
.start(tweenManager);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.