我有一款用LibGDX製作的遊戲,我沒有在遊戲中實現scene2d或者stage或actors,但現在需要滾動窗格。我見過的每個例子都使用舞臺和角色來繪製滾動窗格,是否可以使用批處理器或其他方法繪製它?像這樣:LibGDX Draw Scrollpane WITHOUT Stage
batcher.draw(scrollpane);
而不是創造一個我根本沒有做過的整個舞臺。
我有一款用LibGDX製作的遊戲,我沒有在遊戲中實現scene2d或者stage或actors,但現在需要滾動窗格。我見過的每個例子都使用舞臺和角色來繪製滾動窗格,是否可以使用批處理器或其他方法繪製它?像這樣:LibGDX Draw Scrollpane WITHOUT Stage
batcher.draw(scrollpane);
而不是創造一個我根本沒有做過的整個舞臺。
每個演員都有一個繪畫和動作的功能,當你將他們附加到一個舞臺上時,這些舞臺就會被調用。所以你需要做的就是打電話自己畫。既然你想與一個滾動窗格進行交互,你還需要調用它。它還需要一個GestureListener
,所以你可以滾動它,並可能更多的東西,否則舞臺將處理。
scrollpane.act(deltaTime);
scrollpane.draw(spriteBatch, alpha);
我真的不知道爲什麼你不想要的舞臺。 Stage爲您提供了大量的功能和可擴展性。是的,只有一個滾動窗格,整個舞臺可能會過度殺傷,但它不會佔用您的資源。你也需要演員來填充這個滾動窗格(你也想自己處理這些)?我真的找不到離開舞臺的理由,這只是幾行代碼。
既然你對學習舞臺在這裏的工作方式猶豫不決,可能會幫助你,因爲對Stage
的基本用法知之甚少。
Stage stage = new Stage();
stage.act();
stage.draw();
//This is pretty much it, you can start adding actors to it now.
Table myTable = new Table();
myTable.setFillParent = true; // <-- sets initial table to fill it's parent (in this case the stage)
Scrollpane myScrollpane = new Scrollpane(); // <-- Add actors to hold by scrollpane
myTable.add(myScrollpane);
stage.addActor(myTable);
stage.addActor(myTable);
爲了能夠與舞臺進行交互,您需要將其設置爲輸入處理器。
Gdx.input.setInputProcessor(stage);
//If you want multiple input processors you need to use a InputMultiplexer
InputMultiplexer im = new InputMultiplexer();
im.addProcessor(stage);
im.addProcessor(new GestureDetector(someScreen));
im.addProcessor(player.getInputProcessor);
非常感謝。我對執行一個舞臺猶豫不決的唯一原因是,這很簡單,這是我的第一場比賽,當我建立遊戲基礎時,我從來不知道scene2d。現在已經有相當長的一段路要走,我唯一擔心的是如果我想圍繞着繪製一個舞臺,我將不得不改變整個遊戲代碼的基礎。在看完你的答案後,似乎可能需要花時間重構代碼並在舞臺上繪製所有內容,但是是否可以僅在舞臺上繪製scrollpane並將所有其他內容保留原樣?再次感謝 – Xaoilin