自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Android游戲引擎libgdx使用教程10:雙舞臺(tái)

移動(dòng)開(kāi)發(fā) Android
游戲屏幕最常見(jiàn)的就是一個(gè)變化較少的背景加上一系列和用戶(hù)交互的角色和部件。為了方便管理你還可以為背景建個(gè)Group方便管理。

游戲屏幕最常見(jiàn)的就是一個(gè)變化較少的背景加上一系列和用戶(hù)交互的角色和部件。為了方便管理你還可以為背景建個(gè)Group方便管理。

但是有時(shí)候?qū)懙臅r(shí)候沒(méi)有想到這個(gè)問(wèn)題,或者是背景不是單純的一個(gè)圖片什么的,背景和角色還有一些混合邏輯分布在兩個(gè)Stage里。我重寫(xiě)太麻煩,想想反正都是SpritBatch繪制出來(lái)的,用雙舞臺(tái)大不了多個(gè)攝像頭。馬上試試還真行。

先看看Stage的draw方法:

  1. /** Renders the stage */    
  2. public void draw () {    
  3. camera.update();    
  4. if (!root.visible) return;    
  5. batch.setProjectionMatrix(camera.combined);    
  6. batch.begin();    
  7. root.draw(batch, 1);    
  8. batch.end();    
  9. }   

batch的話兩個(gè)舞臺(tái)可以共用。用Stage(width, height, stretch, batch)實(shí)例化第二個(gè)舞臺(tái)。

代碼如下:

  1. package com.cnblogs.htynkn.game;   
  2. import com.badlogic.gdx.ApplicationListener;    
  3. import com.badlogic.gdx.Gdx;    
  4. import com.badlogic.gdx.InputProcessor;    
  5. import com.badlogic.gdx.graphics.GL10;    
  6. import com.badlogic.gdx.graphics.Texture;    
  7. import com.badlogic.gdx.graphics.g2d.TextureRegion;    
  8. import com.badlogic.gdx.scenes.scene2d.Stage;    
  9. import com.badlogic.gdx.scenes.scene2d.ui.Image;   
  10. public class JavaGame implements ApplicationListener {   
  11. Stage stage1;    
  12. Stage stage2;    
  13. float width;    
  14. float height;   
  15. @Override    
  16. public void create() {    
  17. width = Gdx.graphics.getWidth();    
  18. height = Gdx.graphics.getHeight();    
  19. stage1 = new Stage(width, height, true);    
  20. stage2 = new Stage(width, height, true,stage1.getSpriteBatch());    
  21. Image image = new Image(new TextureRegion(new Texture(Gdx.files    
  22. .internal("img/sky.jpg")), 5050480320));    
  23. stage1.addActor(image);    
  24. Image image2 = new Image(new TextureRegion(new Texture(Gdx.files    
  25. .internal("img/baihu.png")), 217157));    
  26. image2.x=(width-image2.width)/2;    
  27. image2.y=(height-image2.height)/2;    
  28. stage2.addActor(image2);    
  29. }   
  30. @Override    
  31. public void dispose() {    
  32. // TODO Auto-generated method stub   
  33. }   
  34. @Override    
  35. public void pause() {    
  36. // TODO Auto-generated method stub   
  37. }   
  38. @Override    
  39. public void render() {    
  40. Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);    
  41. stage1.act(Gdx.graphics.getDeltaTime());    
  42. stage2.act(Gdx.graphics.getDeltaTime());    
  43. stage1.draw();    
  44. stage2.draw();    
  45. }   
  46. @Override    
  47. public void resize(int width, int height) {    
  48. // TODO Auto-generated method stub   
  49. }   
  50. @Override    
  51. public void resume() {    
  52. // TODO Auto-generated method stub   
  53. }    
  54. }   

效果:

Android游戲引擎libgdx使用教程10:雙舞臺(tái)

如果你對(duì)于效率追求比較極致,可以考慮對(duì)于SpritBatch的緩沖數(shù)進(jìn)行修改。

還有一個(gè)需要注意,背景舞臺(tái)應(yīng)該先繪制,其他部件后繪制,不然效果就是下圖:

Android游戲引擎libgdx使用教程10:雙舞臺(tái)

關(guān)于舞臺(tái)的輸入控制,不能簡(jiǎn)單的使用:

  1. Gdx.input.setInputProcessor(stage1);    
  2. Gdx.input.setInputProcessor(stage2);   

應(yīng)該這樣做:

  1. InputMultiplexer inputMultiplexer=new InputMultiplexer();    
  2. inputMultiplexer.addProcessor(stage1);    
  3. inputMultiplexer.addProcessor(stage2);   

 

責(zé)任編輯:閆佳明 來(lái)源: jizhuomi
相關(guān)推薦

2013-12-04 16:28:29

Android游戲引擎libgdx教程

2013-12-04 17:14:57

Android游戲引擎libgdx教程

2013-12-04 13:30:45

Android游戲引擎libgdx教程

2013-12-06 09:59:53

Android游戲引擎libgdx教程

2013-12-04 17:27:10

Android游戲引擎libgdx教程

2013-12-06 10:12:49

Android游戲引擎libgdx教程

2013-12-06 10:22:42

Android游戲引擎libgdx教程

2013-12-04 16:21:02

Android游戲引擎libgdx教程

2013-12-04 16:07:27

Android游戲引擎libgdx教程

2013-12-06 10:35:28

Android游戲引擎libgdx教程

2011-07-18 12:29:10

2011-07-18 11:23:29

iPhone 游戲 動(dòng)畫(huà)

2011-07-18 11:39:58

iPhone 游戲 引擎

2011-07-18 11:07:12

iPhone 游戲 引擎

2011-07-18 10:53:09

2014-06-03 09:35:19

Javalibgdx

2014-07-15 10:34:14

Android游戲引擎

2013-06-07 13:20:16

Android開(kāi)發(fā)開(kāi)源游戲引擎游戲開(kāi)發(fā)

2014-07-17 11:10:19

Android開(kāi)源游戲引擎

2011-05-31 15:45:38

Android 游戲引擎 開(kāi)源
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)