Esempio n. 1
0
  /*
   * Path with carpet and texture
   */
  public Elevator(
      World world,
      int COUNT,
      Vector2 startPoint,
      Vector2 endPoint,
      float width,
      float height,
      int zIndex,
      String imagePathCarpet,
      String imagePathTexture) {
    this.width = width;
    this.height = height;
    this.elevetorWidth = PhysicsHelper.ConvertToBox(width);
    this.elevetorHeight = PhysicsHelper.ConvertToBox(height);
    this.COUNT = COUNT;
    this.startPoint = startPoint;
    this.endPoint = endPoint;
    this.world = world;

    useTexture = true;
    this.imagePathCarpet = imagePathCarpet;
    this.imagePathTexture = imagePathTexture;

    createElevetors();
  }
Esempio n. 2
0
 public Elevator(World world, float height, int zIndex) {
   this.width = width;
   this.height = height;
   this.elevetorWidth = PhysicsHelper.ConvertToBox(width);
   this.elevetorHeight = PhysicsHelper.ConvertToBox(height);
   this.COUNT = COUNT;
   this.startPoint = startPoint;
   this.endPoint = endPoint;
   this.world = world;
   createElevetors();
 }
Esempio n. 3
0
 /**
  * @param x
  * @param y
  * @param width
  * @param height
  * @param zIndex
  */
 public Elevator(
     World world,
     int COUNT,
     Vector2 startPoint,
     Vector2 endPoint,
     float width,
     float height,
     int zIndex) {
   // super(x, y, width, height, zIndex);
   // TODO Auto-generated constructor stub]
   // this.x = startPoint.x;
   // this.y = startPoint.y;
   this.width = width;
   this.height = height;
   this.elevetorWidth = PhysicsHelper.ConvertToBox(width);
   this.elevetorHeight = PhysicsHelper.ConvertToBox(height);
   this.COUNT = COUNT;
   this.startPoint = startPoint;
   this.endPoint = endPoint;
   this.world = world;
   createElevetors();
 }
Esempio n. 4
0
  @Override
  public void render() {
    this.update(Gdx.graphics.getDeltaTime());

    for (int i = 0; i < chains.size(); i++) {
      ct = chains.get(i);

      for (int j = 1; j <= ct.getChildCount(); j++) {
        ct.getVertex(j - 1, vertex);
        ct.getVertex(j, v);

        p.setLocation(
            PhysicsHelper.ConvertToWorld(vertex.x) * LevelInfo.ratioX,
            PhysicsHelper.ConvertToWorld(vertex.y) * LevelInfo.ratioX);
        q.setLocation(
            PhysicsHelper.ConvertToWorld(v.x) * LevelInfo.ratioX,
            PhysicsHelper.ConvertToWorld(v.y) * LevelInfo.ratioX);

        //	if(Math.abs(p.getX() - GlobalVars.ge.getScreen().cam.position.x) >
        // Gdx.graphics.getWidth())
        //		continue;
        //	if(Math.abs(p.getY() - GlobalVars.ge.getScreen().cam.position.y) >
        // Gdx.graphics.getHeight())
        //		continue;

        if (q.x < Helper.getCameraLeft() && p.x < Helper.getCameraLeft()) continue;
        else if (p.x > Helper.getCameraRight() && q.x > Helper.getCameraRight()) continue;

        //				GlobalVars.ge.getScreen().getBatch()
        //						.setColor(0.1f, 0.1f, 0.1f, 0.8f);

        //				 Helper.println("Angle: " + j + " -> " + Helper.getAngle(p,
        // q));

        distance = p.distancePoint2Point(q);

        //				Helper.println("\nP: " + p);
        //				Helper.println("Q: " + q);
        // drawing road texture
        for (int k = 0; k < distance; k += 15 * LevelInfo.ratioX) {
          p.getPointAtDistance(p, Helper.getAngle(p, q) + 90, k, r);
          //					Helper.println("R: " + r);

          //					float f = GlobalVars.ge.getScreen().cam.position.y-Gdx.graphics.getHeight()/2f;
          float f = texturePathCarpet.getRegionHeight();
          //					float f = r.y - Helper.getCameraBottom();
          //					GlobalVars.ge.getRenderer().render(texturePathTexture,
          //							r.x, r.y - f,
          //							15* LevelInfo.ratioX, f);
          GlobalVars.ge
              .getRenderer()
              .render(
                  texturePathTexture,
                  r.x,
                  r.y - f,
                  15 * LevelInfo.ratioX,
                  f,
                  0,
                  texturePathTexture.getRegionHeight() - f,
                  texturePathTexture.getRegionWidth(),
                  f);
        }

        GlobalVars.ge
            .getRenderer()
            .render(
                texturePathCarpet,
                p.x,
                p.y - this.height / 2f,
                distance,
                /* GameMenuInfo.ratio_h* */ this.height * 2f,
                0,
                this.height,
                Helper.getAngle(p, q) + 90,
                1,
                1);

        //				GlobalVars.ge.getScreen().getBatch().setColor(1f, 1f, 1f, 1f);

      }
    }
  }
Esempio n. 5
0
  private void createElevetors() {
    // TODO Auto-generated method stub
    BodyDef bodyDef = new BodyDef();
    for (int i = 0; i < XMLReader.ropes.size; i++) {

      // if(XMLReader.ropes.get(i).pathType == "path")
      Helper.println("pathtype" + XMLReader.ropes.get(i).pathType);
      XMLReader.ropes.get(i).pathType = XMLReader.ropes.get(i).pathType.toLowerCase();
      // if(true)
      if (!XMLReader.ropes.get(i).pathType.contains("lift")) {
        Vector2 vs[] = new Vector2[XMLReader.ropes.get(i).getNodes().size()];
        // for (int vertexCount
        // =0;vertexCount<XMLReader.ropes.get(i).getNodes().size();vertexCount++)
        // {
        // vs[vertexCount] = new Vector2();
        // }
        for (int vertexCount = 0;
            vertexCount < XMLReader.ropes.get(i).getNodes().size();
            vertexCount++) {

          if (XMLReader.ropes.get(i).getNodes().get(vertexCount).getY() < fallY)
            fallY = XMLReader.ropes.get(i).getNodes().get(vertexCount).getY();
          Helper.println("fallY::" + fallY);
          //					 Helper.println("vertex count::"+ vertexCount);
          // vs[vertexCount] = new Vector2(vs[vertexCount-1].x +
          // elevetorWidth, vs[vertexCount-1].y * 1.10f);
          // Helper.println("vertex position in
          // pixel:::"+PhysicsHelper.ConvertToWorld((vs[vertexCount-1].x)
          // ));
          // Helper.println("value of i:::"+i+"value of certexCpunt::"+vertexCount);
          try {
            // Helper.println("xml reader given rope no::::;"+XMLReader.ropes.get(i)+"xml reader
            // given rope nodes
            // ate::::;"+XMLReader.ropes.get(i).getNodes().get(vertexCount).getX());
            vs[vertexCount] =
                new Vector2(
                    PhysicsHelper.ConvertToBox(
                        XMLReader.ropes.get(i).getNodes().get(vertexCount).getX()),
                    PhysicsHelper.ConvertToBox(
                        XMLReader.ropes.get(i).getNodes().get(vertexCount).getY()));

            // Helper.println("rope  no:"+i+"rope node no:"+vertexCount+"rope node
            // position"+PhysicsHelper.ConvertToWorld(vs[vertexCount].x)+"rope node
            // position"+PhysicsHelper.ConvertToWorld(vs[vertexCount].y));
          } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
          }
        }

        ChainShape chain = new ChainShape();
        // chain.setPrevVertex(new Vector2(vs[0].x - elevetorWidth,
        // vs[0].y));
        //
        // chain.setNextVertex(new Vector2(vs[vs.length-1].x +
        // elevetorWidth, vs[vs.length-1].y * 1.05f));
        chain.createChain(vs);
        // chain.setRadius(.625f);
        FixtureDef chainShepDef = new FixtureDef();
        chainShepDef.friction = friction;
        chainShepDef.shape = chain;
        chainShepDef.density = 0f;
        chainShepDef.restitution = 0f;
        // chainShepDef.filter.groupIndex = 1;
        chainShepDef.filter.categoryBits = 11;
        chainShepDef.filter.maskBits = 14 | 13 | 4 | 5 | 6 | 7 | 1;

        chains.add(chain);

        // bodyDef.position = anchor.add(new Vector2(0, i * 0.25f));
        // anchor.add(new Vector2(i*.25f, 0));
        // anchor.set(new Vector2(i*0f, i*0.55f));
        // anchor.add(PhysicsHelper.ConvertToBox(startPoint.x),
        // PhysicsHelper.ConvertToBox(startPoint.y));
        // anchor.add(startPoint);
        // calculatedAngle = Helper.getAngle(p, q);
        // bodyDef.angle = MathUtils.degreesToRadians*calculatedAngle;

        elevetor = world.createBody(bodyDef);
        elevetor.setUserData("elevator");
        elevetor.createFixture(chainShepDef);
        elevetor.setType(BodyType.StaticBody);
        elevators.add(elevetor);
        Helper.println("body angle is :::" + elevetor.getAngle());

      } else if (XMLReader.ropes.get(i).pathType.contains("lift")) {
        Vector2 vs1[] = new Vector2[XMLReader.ropes.get(i).getNodes().size()];
        // for (int vertexCount
        // =0;vertexCount<XMLReader.ropes.get(i).getNodes().size();vertexCount++)
        // {
        // vs1[vertexCount] = new Vector2();
        // }

        for (int vertexCount = 0;
            vertexCount < XMLReader.ropes.get(i).getNodes().size();
            vertexCount++) {
          //					if (XMLReader.ropes.get(i).getNodes().get(vertexCount)
          //							.getY() < fallY)
          //						fallY = XMLReader.ropes.get(i).getNodes()
          //								.get(vertexCount).getY();
          // Helper.println("value of i:::"+i+"value of certexCpunt::"+vertexCount);
          vs1[vertexCount] =
              new Vector2(
                  PhysicsHelper.ConvertToBox(
                      XMLReader.ropes.get(i).getNodes().get(vertexCount).getX()),
                  PhysicsHelper.ConvertToBox(
                      XMLReader.ropes.get(i).getNodes().get(vertexCount).getY()));
          if (vertexCount == XMLReader.ropes.get(i).getNodes().size() - 1)
            liftWidth =
                PhysicsHelper.ConvertToWorld(
                    (float) Helper.pointToPointDistance(vs1[vertexCount], vs1[0]));
          Helper.println("lift width ::" + liftWidth);
        }

        boolean b = XMLReader.ropes.get(i).pathType.contains("up");
        Helper.println("\n\n\n\n\n*****************************\nLift rope number :::" + i);
        Lift lift =
            new Lift(
                new Vector2(
                    PhysicsHelper.ConvertToWorld(vs1[0].x), PhysicsHelper.ConvertToWorld(vs1[0].y)),
                null,
                null,
                null,
                1,
                world,
                true,
                liftWidth,
                7 * LevelInfo.ratioY,
                b);
        // lift.getBody().setTransform(lift.getBody().getPosition(),
        // (float) (lift.getBody().getAngle()+ Math.PI/2));
        GlobalVars.ge.getCurrentStage().addElement(lift);
        // elevators.add(lift.getBody());
        // elevators.add(elevetor);
      }

      // elevators.add(i, elevetor);
    }

    ((BikeLevel) GlobalVars.ge.getCurrentStage())
        .setElevatorInfo(XMLReader.ropes.get(XMLReader.ropes.size - 1).getNodes().getLast(), fallY);
  }