Example #1
0
  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();
  }
Example #2
0
  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();
    }
  }
Example #3
0
  static {
    try {
      SimpleStream ss = new SimpleStream("data/crate.3ds");
      bluePrint = new ClientObject(Loader.load3DS(ss.getStream(), 0.09f)[0]);
      ss.close();
      bluePrint.translate(0, -4.3f, -5);
      bluePrint.translateMesh();
      bluePrint.getTranslationMatrix().setIdentity();
      TextureInfo ti = null;
      if (!Globals.normalMapping) {
        bluePrint.setTexture("crate");
      } else {
        ti = new TextureInfo(TextureManager.getInstance().getTextureID("crate"));
        ti.add(
            TextureManager.getInstance().getTextureID("cratenormals"), TextureInfo.MODE_MODULATE);
        bluePrint.setTexture(ti);
      }

      bluePrint.getMesh().compress();
      bluePrint.build();

      Object3D child = null;
      Animation anim = new Animation(6);
      anim.setClampingMode(Animation.USE_CLAMPING);
      anim.createSubSequence("explosion");

      Loader.setVertexOptimization(false);

      for (int i = 1; i < 6; i++) {
        String name = "data/crate" + i + ".3ds";
        ss = new SimpleStream(name);
        Object3D obj = Loader.load3DS(ss.getStream(), 4.4050189f)[0];
        ss.close();
        obj.translate(0, -5f, -0.6f);
        obj.translateMesh();
        obj.getTranslationMatrix().setIdentity();
        if (!Globals.normalMapping) {
          obj.setTexture("crate");
        } else {
          obj.setTexture(ti);
        }
        obj.build();

        if (i == 1) {
          child = obj;
          child.setMesh(child.getMesh().cloneMesh(true));
        }
        obj.getMesh().compress();
        anim.addKeyFrame(obj.getMesh());
      }
      child.setAnimationSequence(anim);

      Loader.setVertexOptimization(true);

      childBluePrint = child;

      /*
       * for (int i=0; i<child.getMesh().getBoundingBox().length; i++) {
       * System.out.print(child.getMesh().getBoundingBox()[i]);
       * System.out.println("="+bluePrint.getMesh().getBoundingBox()[i]);
       * }
       */
    } catch (Exception e) {
      e.printStackTrace();
    }
  }