在monkey里怎么加入导航,还有一些重要的信息,比如游戏人物的一些属性,而且这个只需要二维显示就行了。
添加swing组件是比较好的选择。
一、生成swing显示桌面。
display=DisplaySystem.getDisplaySystem(); displaywide=display.getWidth(); displayheight=display.getHeight(); desktop=new JMEDesktop("controldesk"); desktop.getJDesktop().setBackground(new Color(0,0,0,0));//完全透明 desktop.setup(displaywide,displayheight,false,input);
this.attachChild(desktop);
这个桌面对象 desktop可以放在三维场景中的任意位置,但我希望他能固定在摄像机前面,
下面这一句很有用,设置渲染模式
this.setRenderQueueMode(Renderer.QUEUE_ORTHO);
有了这一句,这个桌面好像就贴在了摄像机的镜头上了,不再属于三维场景,不太理解
二、生成桌面控制器
desktopPane=desktop.getJDesktop();
有了这个控制器对象,就可以在上面添加各种swing组件了
比如:
JButton changegear=new JButton("切换油门档(C)");
changegear.setSize(displaywide/8, displayheight/23);
changegear.setLocation(displaywide*58/100, displayheight*95/100);
desktopPane.add(changegear);
下面show我做的坦克游戏 swing效果:
下面白色的文字是 TEXT2D,不支持中文,到时换成jLabel就OK了。 按钮和小地图是swing 写的,小地图中红色的是敌人,
白色的是主角,不动的,只是方向根据车体指向变化,和敌人的位置进行了一下坐标变换就成了,真实的雷达应该也是这样显示的。
google code地址:http://code.google.com/p/netjava3d/ 有兴趣一起研究吧!