1

私は JME3 ゲーム エンジンは初めてですが、Android XML GUI レイアウトがかなり優れていることは知っています。ここには単純なレイアウトがあり、何が間違っているのかわかりません。ここに私のXMLコードがあります:

<?xml version="1.0" encoding="UTF-8"?>
<nifty xmlns="http://nifty-gui.sourceforge.net/nifty-1.3.xsd"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://nifty-gui.sourceforge.net/nifty-1.3.xsd
                       http://nifty-gui.sourceforge.net/nifty-1.3.xsd">

<useControls filename="nifty-default-controls.xml" />
<useStyles filename="nifty-default-styles.xml" />

<screen id="start" controller="com.jasoncrosby.game.farkle.gui.MenuScreenGui">
    <layer id="layer" backgroundColor="#66CD00" childLayout="center">
        <panel id="panel" align="center" valign="center" childLayout="center" visibleToMouse="true">
            <image filename="Textures/wood_floor.png" height="95%" width="95%"/>

            <panel id="panel" align="center" valign="center" childLayout="center" visibleToMouse="true">
                <text text="test" font="Interface/Fonts/Eraser.fnt"></text>
            </panel>
        </panel>
    </layer>
</screen>

テキストを表示するまで、すべてうまくいきます。さまざまな配置を試し、テキストを別のパネルに移動しようとしましたが、何をしてもテキストが画面の中央に表示されません。これまでのところ、常に左上隅にあり、テキストの右下部分しか見えません。シンプルなものでなければならないと確信していますが、私はこれに慣れていないので、何も気づいていません。事前に助けてくれてありがとう。

4

1 に答える 1

3

古い Nifty バージョンを使用している可能性があります。id="panel" を持つ最初のパネルは childLayout="center" を使用し、2 つの子要素 ​​(画像と別のパネル) があります。これは、1.3.1 より前の Nifty バージョンではサポートされていませんでした。

以下は、 Nifty マニュアル PDFからの引用です。

Nifty 1.3.1 で改善されたもう 1 つの点は、childLayout="center" が複数の子要素をサポートするようになったことです。1.3.1 より前のバージョンでは、 childLayout="center" は 1 つの子要素のみをサポートし、他の要素には奇妙なことが起こりました。これも改善され、childLayout="center" は複数の子要素をサポートします。

あなたの XML を Nifty 1.3.2 で試してみましたが、テキストは画面の中央にあります。

PS: あなたの問題とは関係ありません: 複数の要素に同じ id を使用することはお勧めできません (id="panel" を持つ 2 つのパネルがあります)。(ログに警告が表示される以外に) 悪いことは何も起こりませんが、findElementByName() を実行しようとすると、予期しない要素が発生する可能性があります。

于 2012-11-15T21:59:39.267 に答える