public Car() { /** * The car's "body" is this instance itself. That may seem a bit strange at first glance, but * it's quite convenient in this case. */ super(Primitives.getBox(8, 0.25f)); rightFront = Primitives.getSphere(5, 4); leftFront = Primitives.getSphere(5, 4); rightRear = Primitives.getSphere(5, 4); leftRear = Primitives.getSphere(5, 4); /** The wheels are parts, i.e. children of the car */ addChild(rightFront); addChild(leftFront); addChild(rightRear); addChild(leftRear); /** Initialize the car and the wheels */ setTexture("car"); rightFront.setTexture("car"); leftFront.setTexture("car"); rightRear.setTexture("car"); leftRear.setTexture("car"); setEnvmapped(Object3D.ENVMAP_ENABLED); rightFront.setEnvmapped(Object3D.ENVMAP_ENABLED); leftFront.setEnvmapped(Object3D.ENVMAP_ENABLED); rightRear.setEnvmapped(Object3D.ENVMAP_ENABLED); leftRear.setEnvmapped(Object3D.ENVMAP_ENABLED); /** We need to offset the wheels a little... */ rightFront.translate(new SimpleVector(-8, 4, 8)); rightRear.translate(new SimpleVector(-8, 4, -8)); leftFront.translate(new SimpleVector(8, 4, 8)); leftRear.translate(new SimpleVector(8, 4, -8)); rightFront.translateMesh(); rightRear.translateMesh(); leftFront.translateMesh(); leftRear.translateMesh(); rightFront.setTranslationMatrix(new Matrix()); rightRear.setTranslationMatrix(new Matrix()); leftFront.setTranslationMatrix(new Matrix()); leftRear.setTranslationMatrix(new Matrix()); /** ...the wheels are now in place. We can now build the car. */ build(); rightRear.build(); rightFront.build(); leftRear.build(); leftFront.build(); }
static { // static initializer that creates a mesh blueprint and loads the // textures. try { SimpleStream ss = new SimpleStream("data/weapon.jpg"); TextureManager.getInstance().addTexture("weapon", new Texture(ss.getStream())); ss.close(); ss = new SimpleStream("data/snork.md2"); bluePrint = new ClientObject(Loader.loadMD2(ss.getStream(), 0.22f)); // 0.32f bluePrint.translate(0, 4.5f, 0); bluePrint.translateMesh(); bluePrint.getTranslationMatrix().setIdentity(); bluePrint.translate(100000, 100000, 100000); sphereBluePrint = Primitives.getSphere(9, 6); sphereBluePrint.build(); sphereBluePrint.setTexture("shield"); sphereBluePrint.calcTextureWrapSpherical(); ss.close(); } catch (Exception e) { e.printStackTrace(); } }
@Override public void onSurfaceChanged(GL10 gl, int width, int height) { if (fb != null) { fb.dispose(); } fb = new FrameBuffer(gl, width, height); if (master == null) { world = new World(); world.setAmbientLight(20, 20, 20); sun = new Light(world); sun.setIntensity(250, 250, 250); Texture texture = new Texture(BitmapHelper.convert(getResources().getDrawable(R.drawable.bublebgnd))); TextureManager.getInstance().addTexture("bublebgnd", texture); // Create a texture out of the icon...:-) texture = new Texture( BitmapHelper.rescale( BitmapHelper.convert(getResources().getDrawable(R.drawable.icon)), 64, 64)); TextureManager.getInstance().addTexture("tex", texture); bubbles = new Object3D[BUBBLES]; for (byte i = 0; i < BUBBLES; i++) { Object3D bubble = Primitives.getSphere(8); bubble.calcTextureWrapSpherical(); // bubble.setCulling(true); bubble.translate(-30 + i * 20, 30.0f, 0.0f); bubble.setTransparency(70); // bubble.rotateX(-(float) Math.PI / Math.abs(r.nextInt()/3)); bubble.setTexture("tex"); bubble.strip(); bubble.build(); bubbles[i] = bubble; } background = Primitives.getPlane(1, 110f); // background.$ // background.calcTextureWrapSpherical(); background.setTexture("bublebgnd"); background.strip(); background.build(); world.addObject(background); // world. world.addObjects(bubbles); Camera cam = world.getCamera(); cam.moveCamera(Camera.CAMERA_MOVEOUT, 70); cam.lookAt(background.getTransformedCenter()); // cam.lookAt(bubbles.getTransformedCenter()); SimpleVector sv = new SimpleVector(); sv.set(background.getTransformedCenter()); sv.y -= 100; sv.z -= 100; sun.setPosition(sv); MemoryHelper.compact(); if (master == null) { Logger.log("Saving master Activity!"); master = BubblesActivity.this; } } }