日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Android游戲引擎libgdx使用教程10:雙舞臺

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

創(chuàng)新互聯(lián)成立以來不斷整合自身及行業(yè)資源、不斷突破觀念以使企業(yè)策略得到完善和成熟,建立了一套“以技術(shù)為基點,以客戶需求中心、市場為導向”的快速反應體系。對公司的主營項目,如中高端企業(yè)網(wǎng)站企劃 / 設計、行業(yè) / 企業(yè)門戶設計推廣、行業(yè)門戶平臺運營、App定制開發(fā)、手機網(wǎng)站制作設計、微信網(wǎng)站制作、軟件開發(fā)、西云機房等實行標準化操作,讓客戶可以直觀的預知到從創(chuàng)新互聯(lián)可以獲得的服務效果。

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

先看看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的話兩個舞臺可以共用。用Stage(width, height, stretch, batch)實例化第二個舞臺。

代碼如下:

 
 
 
  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")), 50, 50, 480, 320));    
  23. stage1.addActor(image);    
  24. Image image2 = new Image(new TextureRegion(new Texture(Gdx.files    
  25. .internal("img/baihu.png")), 217, 157));    
  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. }   

效果:

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

還有一個需要注意,背景舞臺應該先繪制,其他部件后繪制,不然效果就是下圖:

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

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

應該這樣做:

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

標題名稱:Android游戲引擎libgdx使用教程10:雙舞臺
轉(zhuǎn)載來于:http://m.5511xx.com/article/ccdgjpg.html