2015-04-04 107 views
0

我想让启动屏幕等待10秒钟。
我试图到处搜索,并尝试了一些方法,但似乎没有任何工作。初始屏幕等待几秒钟

任何人都可以引导我走向正确的方向?

这里是我的代码:使用处理程序给予延迟

public class SplashLoadingScreen extends Screen { 

public SplashLoadingScreen(Game game) { 
    super(game); 
} 

@Override 
public void update(float deltaTime) { 
    Graphics g = game.getGraphics(); 
    Assets.splash= g.newImage("splash.jpg", ImageFormat.RGB565); 
    game.setScreen(new LoadingScreen(game)); 
} 

@Override 
public void paint(float deltaTime) { 
} 

@Override 
public void pause() { 
} 

@Override 
public void resume() { 
} 

@Override 
public void dispose() { 
} 

@Override 
public void backButton() { 
} 
} 
+2

10秒似乎很长一段时间来等待没有理由 – cYrixmorten 2015-04-04 14:29:58

+0

真实的,但我需要它10秒工作... – 2015-04-06 02:32:12

+0

十秒长的离谱。每次开始游戏时,我都不会玩等待10秒的游戏。 4秒更有意义。每当我做出启动画面时,我都会将它设置为可点击的,以便您可以通过它。 – EpicPandaForce 2015-04-09 07:28:42

回答

1

尝试。

//handler to close the splash activity after sometime 
     new Handler().postDelayed(new Runnable() { 

      @Override 
      public void run() { 
       //Call your image from assests 
      } 

     }, 10000); 

希望这会有所帮助。

感谢

+0

处理程序是Android特定的,此代码是为libGDX(纯java) – EpicPandaForce 2015-04-09 07:30:02

-1
public class SplashLoadingScreen extends Screen { 
public SplashLoadingScreen(Game game) { 
     super(game); 
} 

@Override 
public void update(float deltaTime) { 

Graphics g = game.getGraphics(); 
Assets.splash= g.newImage("splash.jpg", ImageFormat.RGB565); 
try { 
Thread.currentThread(); 
Thread.sleep(10000); 
} catch (InterruptedException e) { 
e.printStackTrace(); 
} 
game.setScreen(new LoadingScreen(game)); 
} 

@Override 
public void paint(float deltaTime) { 
} 


@Override 
public void pause() { 
} 

@Override 
public void resume() { 
} 


@Override 
public void dispose() { 
} 
} 
+0

我的应用程序崩溃时,我使用的代码你写道.. – 2015-04-04 23:12:04

+0

这似乎工作..但由于某种原因,等待工作在黑屏出现之前splash.jpg屏幕 – 2015-04-05 07:57:12

+0

**不要等待10秒的主线程** – EpicPandaForce 2015-04-09 07:27:25

0

类似于my answer here,你应该使用update方法更新计时器将启动画面切换。

public class SplashLoadingScreen extends Screen { 

private Sprite sprite; 
private Texture texture; 

public SplashLoadingScreen(Game game) { 
    super(game); 
    texture = new Texture(Gdx.files.internal("data/splash.png"); 
    texture.setFilter(TextureFilter.Linear, TextureFilter.Linear); 
    sprite = new Sprite(new TextureRegion(texture, 0, 0, imageWidth, imageHeight); 

} 

private float timer = 0.0f; 

@Override 
public void update(float deltaTime) { 
    timer += deltaTime; 
    if(timer > 10) { 
     game.setScreen(new LoadingScreen(game)); 
    } 
} 

@Override 
public void paint(float deltaTime) { 
    spriteBatch.draw(sprite); 
} 

@Override 
public void pause() { 
} 

@Override 
public void resume() { 
} 

@Override 
public void dispose() { 
    texture.dispose(); 
} 

@Override 
public void backButton() { 
} 
} 
+0

当我尝试使用该代码例如..我得到错误..后我导入一切,并添加gdx。我在spriteBatch.draw(sprite)中得到错误;任何想法我应该做什么? – 2015-04-11 23:38:59

+0

是的,你需要初始化'spriteBatch' **某处** – EpicPandaForce 2015-04-12 00:20:21

+0

我想你已经想出了如何*在初始屏幕上绘制图像*,因为你需要一个精灵批处理。 – EpicPandaForce 2015-04-12 00:58:33