1

おはようございます!Slick2dでNifty Guiを試しています。Nifty Gui による入力ポーリング以外はすべて正常に動作します。全く反応しません!ここに私のコードの一部があります:

XML:

<nifty xmlns="http://nifty-gui.lessvoid.com/nifty-gui">
    <screen id="GamePlay" controller="GamePlayScreenController">
        <layer childLayout="vertical">
            <panel id="roomListPanel" width="100%" height="32px" 
            childLayout="absolute-inside" padding="5px">

                <control id="appendButton" name="button" label="Pause">
            <interact onClick="test()" />       
        </control>
            </panel>
        </layer>
    </screen>
</nifty>

ジャワ:

class GamePlayScreenController implements ScreenController {
    public void bind(Nifty nifty, Screen screen) {
        System.out.println("Bind");
    }

    public void onEndScreen() {
        System.out.println("End");
    }

    public void onStartScreen() {
        System.out.println("Start");
    }

    public void test() {
        System.out.println("Test");
    }
}

... 

// In my state class:

this.nifty = new Nifty(new LwjglRenderDevice(), new NullSoundDevice(),       new LwjglInputSystem(), new TimeProvider());

this.nifty.loadStyleFile("nifty-default-styles.xml");
this.nifty.loadControlFile("nifty-default-controls.xml");
this.nifty.registerScreenController(new GamePlayScreenController());
this.nifty.fromXml("data/test.xml", "GamePlay");
this.nifty.gotoScreen("GamePlay");

...

this.nifty.update();

... 

SlickCallable.enterSafeBlock();
this.nifty.render(false);
SlickCallable.leaveSafeBlock();

なぜそうしないのか、私には考えがありません。助けてください!ありがとう!

4

2 に答える 2

0

LwjglInputSystem でstartup()メソッドを呼び出しましたか? それがどのように呼び出されるかについては、ここで利用可能なサンプルコードがあります。これは、LwjglInputSystem を適切に初期化するために必要です。

ただし、ここで提供する既製の Slick2d 統合クラスを使用しないのはなぜですか? Slick2d Nifty-GUI クラス? LWJGL に直接依存するのではなく、Nifty GUI を Slick2d と簡単に統合するのに適している可能性があります。

于 2016-09-25T13:06:01.637 に答える