package sg; import java.util.logging.Level; import java.util.logging.Logger; import com.jme.app.SimpleGame; import com.jme.bounding.BoundingBox; import com.jme.renderer.ColorRGBA; import com.jme.scene.Skybox; import com.jme.scene.shape.Sphere; import com.jme.scene.state.LightState; import com.jme.scene.state.TextureState; import com.jme.image.Texture; import com.jme.light.PointLight; import com.jme.math.Vector3f; import com.jme.util.TextureManager; public class SpaceGame extends SimpleGame { private Skybox skybox; private LightState lightState; public static void main(String[] args) { Logger.getLogger( "" ).setLevel( Level.WARNING ); SpaceGame game = new SpaceGame(); game.setConfigShowMode(ConfigShowMode.AlwaysShow); game.start(); } protected void simpleInitGame() { display.setTitle("SpaceGame"); Sphere s = new Sphere("Sphere", 30, 30, 25); s.setLocalTranslation(new Vector3f(0,0,-40)); s.setModelBound(new BoundingBox()); s.updateModelBound(); Texture texture = TextureManager.loadTexture( SpaceGame.class.getClassLoader().getResource( "jmetest/data/images/Monkey.jpg"), Texture.MinificationFilter.Trilinear, Texture.MagnificationFilter.Bilinear); TextureState ts = display.getRenderer().createTextureState(); ts.setEnabled(true); ts.setTexture(texture); s.setRenderState(ts); rootNode.attachChild(s); buildSkyBox(); rootNode.attachChild(skybox); buildLighting(); rootNode.setRenderState(lightState); } public void simpleUpdate(){ skybox.setLocalTranslation(cam.getLocation()); } private void buildSkyBox() { skybox = new Skybox("skybox", 500, 500, 500); Texture north = TextureManager.loadTexture( SpaceGame.class.getClassLoader().getResource( "sg/data/skybox/advanced/front.png"), Texture.MinificationFilter.BilinearNearestMipMap, Texture.MagnificationFilter.Bilinear); Texture south = TextureManager.loadTexture( SpaceGame.class.getClassLoader().getResource( "sg/data/skybox/advanced/rest.png"), Texture.MinificationFilter.BilinearNearestMipMap, Texture.MagnificationFilter.Bilinear); Texture east = TextureManager.loadTexture( SpaceGame.class.getClassLoader().getResource( "sg/data/skybox/advanced/rest.png"), Texture.MinificationFilter.BilinearNearestMipMap, Texture.MagnificationFilter.Bilinear); Texture west = TextureManager.loadTexture( SpaceGame.class.getClassLoader().getResource( "sg/data/skybox/advanced/rest.png"), Texture.MinificationFilter.BilinearNearestMipMap, Texture.MagnificationFilter.Bilinear); Texture up = TextureManager.loadTexture( SpaceGame.class.getClassLoader().getResource( "sg/data/skybox/advanced/rest.png"), Texture.MinificationFilter.BilinearNearestMipMap, Texture.MagnificationFilter.Bilinear); Texture down = TextureManager.loadTexture( SpaceGame.class.getClassLoader().getResource( "sg/data/skybox/advanced/rest.png"), Texture.MinificationFilter.BilinearNearestMipMap, Texture.MagnificationFilter.Bilinear); skybox.setTexture(Skybox.Face.North, north); skybox.setTexture(Skybox.Face.West, west); skybox.setTexture(Skybox.Face.South, south); skybox.setTexture(Skybox.Face.East, east); skybox.setTexture(Skybox.Face.Up, up); skybox.setTexture(Skybox.Face.Down, down); skybox.preloadTextures(); skybox.updateRenderState(); } private void buildLighting() { PointLight light = new PointLight(); light.setDiffuse( new ColorRGBA( 1.0f, 1.0f, 1.0f, 1.0f ) ); light.setAmbient( new ColorRGBA( 0.5f, 0.5f, 0.5f, 1.0f ) ); light.setLocation( new Vector3f( 100, 100, 100 ) ); light.setEnabled( true ); lightState = display.getRenderer().createLightState(); lightState.setEnabled( true ); lightState.attach( light ); } }