2012-10-16 3 views
1

Je suis nouveau sur le moteur de jeu JME3 mais je connais assez bien les mises en page Android XML. J'ai une mise en page simple ici et je ne peux pas comprendre ce qui ne va pas. Voici mon code XML:Nifty GUI Layout

<?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> 

Tout fonctionne bien jusqu'à ce que je l'affichage du texte. J'ai essayé différents alignements et essayé de déplacer le texte dans différents panneaux, mais peu importe ce que je fais, le texte n'est jamais au centre de l'écran. C'est toujours dans le coin supérieur gauche jusqu'à présent, je ne peux voir que la partie inférieure droite du texte. Je suis sûr que ça doit être quelque chose de simple mais puisque je suis nouveau dans ce domaine, je ne remarque rien. Merci pour l'aide à l'avance.

+1

peut être mieux sur [gamedev.se] – dardo

+0

@dardo Utilisez la syntaxe [[gamedev.se] 'pour obtenir un lien dans votre commentaire, comme dans [gamedev.se]. Fonctionne avec n'importe quel site SE. Aussi '[sf]' et '[su]' pour ServerFault et SuperUser. –

+0

thx pour la pointe =) – dardo

Répondre

3

Vous utilisez probablement une ancienne version Nifty. Votre premier panneau avec l'ID = "panel" utilise childLayout = "center" et il a deux éléments enfants (une image et un autre panneau). Cela n'était pas pris en charge dans les versions Nifty antérieures à 1.3.1.

Voici une citation du Nifty Manual PDF:

Une autre chose qui a été amélioré dans Nifty 1.3.1 est que childLayout = « center « supporte maintenant plus d'un élément enfant! Dans versions antérieures 1.3.1 childLayout = "center" ne prendrait en charge qu'un seul élément enfant et des choses étranges arriveraient aux autres éléments. Ce a maintenant été amélioré et childLayout = "center" supporte plus de qu'un élément enfant.

J'ai essayé votre fichier XML avec Nifty 1.3.2 et le texte est au centre de l'écran. PS: pas lié à votre problème: ce n'est pas une bonne idée d'utiliser le même identifiant pour plusieurs éléments (vous avez deux panneaux avec id = "panel"). Rien de mauvais ne se produira (à part un avertissement dans le journal) mais quand vous essayez de faire un findElementByName() vous pourriez vous retrouver avec un élément inattendu.