/* * 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(); }
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(); }
/** * @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(); }
@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); } } }
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); }