2012-10-16 2 views
1

저는 JME3 게임 엔진에 익숙하지만 안드로이드 XML GUI 레이아웃이 꽤 잘 알고 있습니다. 나는 여기서 간단한 레이아웃을 가지고 무엇이 잘못되었는지를 파악할 수 없다. 나는 텍스트를 표시에 도달 할 때까지깔끔한 GUI 레이아웃

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

모든 것이 잘 작동 : 여기 내 XML 코드입니다. 나는 다른 정렬을 시도하고 텍스트를 다른 패널로 옮겨 보았습니다.하지만 텍스트가 화면 중앙에 있지는 않습니다. 지금까지 왼쪽 위 모서리에 항상 텍스트의 오른쪽 하단 만 볼 수 있습니다. 나는 그것이 단순한 무언가가되어야한다고 확신하지만, 나는 이것에 익숙하지 않기 때문에 나는 아무것도 눈치 채지 못하고있다. 사전에 도움을 주셔서 감사합니다.

+1

[gamedev.se]가 더 좋을 수도 있습니다. – dardo

+0

@dardo [gamedev.se]와 같이 댓글에 '[gamedev.se]'구문을 사용하여 링크를 가져옵니다. 모든 SE 사이트에서 작동합니다. 또한 ServerFault와 SuperUser를위한'[sf]'와'[su]'. 팁의 경우 –

+0

thx =) – dardo

답변

3

아마도 오래된 멋진 버전을 사용하고있을 것입니다. id = "panel"인 첫 번째 패널은 childLayout = "center"를 사용하고 두 개의 자식 요소 (이미지와 다른 패널)가 있습니다. 이것은 1.3.1 이전의 Nifty 버전에서는 지원되지 않았습니다.

맵시 1.3.1 개선 된 또 다른 한가지는 childLayout = "센터"지금은 하나 개 이상의 자식 요소를 지원한다는 것입니다 : 여기

Nifty Manual PDF에서 인용 한 것입니다! 이전 1.3.1 버전의 childLayout = "center"는 자식 요소 인 만 지원하며 다른 요소에는 이상한 일이 발생합니다. 이 도 이제 개선되었으며 childLayout = "center"는 하나의 하위 요소보다 더 많은 을 지원합니다.

Nifty 1.3.2로 XML을 시도했으며 텍스트가 화면 가운데에 있습니다.

추신 : 문제와 관련 없음 : 여러 요소에 동일한 ID를 사용하는 것은 좋지 않습니다 (ID가 "패널"인 두 개의 패널이 있음). 로그의 경고 외에도 나쁜 일은 발생하지 않지만 findElementByName()을 수행하려고하면 예상치 못한 요소가 발생할 수 있습니다.