我正试图在LWJGL游戏中在屏幕上创建一个六边形。我正在使用Nifty GUI。我目前有2个屏幕,我想切换到我以编程方式绘制六边形的屏幕。
这是我的屏幕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">
<useStyles filename="nifty-default-styles.xml" />
<useControls filename="nifty-default-controls.xml" />
<screen id="start" controller="StartScreen">
<layer id="background" childLayout="center">
<image filename="util/img/menuTexture.png" />
</layer>
<layer id="title" childLayout="vertical">
<image align="center" height="20%" width="80%" filename="util/img/title.png" />
<panel id="subactions" childLayout="absolute" marginTop="40%" height="13%">
<image align="left" height="100%" width="30%" x="0px" y="0px" filename="util/img/rules.png">
<interact onClick="showRules()" />
</image>
<image align="right" height="100%" width="30%" x="70%" y="0px" filename="util/img/exit.png">
<interact onClick="exitGame()" />
</image>
</panel>
<image align="center" height="20%" width="80%" filename="util/img/start game.png" marginTop="5%">
<interact onClick="startGame()" />
</image>
</layer>
</screen>
<screen id="rules" controller="StartScreen">
<layer id="background" childLayout="center">
<image filename="util/img/menuTexture.png" />
</layer>
<layer id="transparent" backgroundColor="#D1D1D1A7" childLayout="vertical">
<panel id="rulesPanel" childLayout="center">
<image filename="util/img/game rules.png" width="100%" height="100%" />
</panel>
<panel id="goToStartPanel" childLayout="center" width="100%" height="13%">
<image height="100%" filename="util/img/exit.png">
<interact onClick="goToStartScreen()" />
</image>
</panel>
</layer>
</screen>
如何切换到这样的屏幕(我会使用nifty.gotoScreen()吗?)并初始化渲染循环?
任何示例代码都会有所帮助。非常感谢你。
答案 0 :(得分:0)
是的,您总是使用nifty.gotoScreen()切换到不同的屏幕。
但我真的不了解绘图形状部分;)当前Nifty,1.3.x或1.4.x不支持自定义绘图到屏幕。但是没有人阻止你在调用nifty.render()之前或之后渲染其他东西,这会使得事物出现在Nifty呈现的元素的下方或上方。
如果你想在你自己绘制的Nifty屏幕上直接拥有一些元素,你唯一的机会就是抓住Nifty呈现的纹理并自己呈现给那个纹理(外面没有任何Nifty的帮助) 。 Nifty只会将纹理显示为图像元素,但您可以更改Nifty之外的纹理内容。
这有意义吗?