التروس في Box2D

مساء الخير ، عزيزي القارئ! هذه هي المادة الرابعة على Box2D. وهنا سوف أقدم حلاً جاهزًا للمبرمجين. أنا شخصياً بحاجة إلى نقلات لمشروعي ، وقد صنعت 4 و 6 و 12 و 24 تروس. استغرق رمز 2115 خطوط ، 4 أيام من العمل. وأريد مشاركتها معك حتى تتمكن من توفير وقتك لمشاريع Box2D الرائعة حقًا. يتم تحجيم جميع التروس ، يمكنك ضبط زاوية الدوران والإحداثيات والتوافر والسرعة وقوة المحرك. في الكود ، يتم تعليق كل شيء بالتفصيل.

إذا كنت بحاجة إلى شيء مثل هذا (ستكون gif-animation بعد kat):

صورة

الشكل 1. نظام العتاد.

هذا المقال هو بالتأكيد لك!

صورة

الشكل 1. نظام العتاد المتحركة

تكوين المشروع هو نفسه ، وقراءة المقال الأول على ربط libGDX ، وخلق نفس المشروع.

يحتوي الكود على وصف لجميع أنواع التروس
package com.mygdx.game; import com.badlogic.gdx.ApplicationAdapter; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.math.Vector3; import com.badlogic.gdx.physics.box2d.Body; import com.badlogic.gdx.physics.box2d.BodyDef; import com.badlogic.gdx.physics.box2d.Box2DDebugRenderer; import com.badlogic.gdx.physics.box2d.FixtureDef; import com.badlogic.gdx.physics.box2d.PolygonShape; import com.badlogic.gdx.physics.box2d.World; import com.badlogic.gdx.physics.box2d.joints.RevoluteJointDef; import com.badlogic.gdx.physics.box2d.joints.WeldJointDef; import utils.Constants; public class MyGdxGame extends ApplicationAdapter { private OrthographicCamera camera; private boolean DEBUG = false; private World world; private Box2DDebugRenderer b2dr; private Body basis; // 4  private Body box; private Body toptooth; private Body righttooth; private Body bottooth; private Body lefttooth; // 6  private Body hexagonum; private Body lefthextooth; private Body righthextooth; private Body toprighthextooth; private Body toplefthextooth; private Body botrighthextooth; private Body botlefthextooth; // 12  private Body Dodecangulum; private Body Dodecangulum2; private Body DodecangulumBotLeftTooth1; private Body DodecangulumBotLeftTooth2; private Body DodecangulumBotLeftTooth3; private Body DodecangulumBotRightTooth1; private Body DodecangulumBotRightTooth2; private Body DodecangulumBotRightTooth3; private Body DodecangulumTopLeftTooth1; private Body DodecangulumTopLeftTooth2; private Body DodecangulumTopLeftTooth3; private Body DodecangulumTopRightTooth1; private Body DodecangulumTopRightTooth2; private Body DodecangulumTopRightTooth3; // 24  private Body twentyfourteethcog1; private Body twentyfourteethcog2; private Body twentyfourteethcog3; private Body twentyfourteethcog4; private Body twentyfourteethcogBotLeftTooth1; private Body twentyfourteethcogBotLeftTooth2; private Body twentyfourteethcogBotLeftTooth3; private Body twentyfourteethcogBotLeftTooth4; private Body twentyfourteethcogBotLeftTooth5; private Body twentyfourteethcogBotLeftTooth6; private Body twentyfourteethcogBotRightTooth1; private Body twentyfourteethcogBotRightTooth2; private Body twentyfourteethcogBotRightTooth3; private Body twentyfourteethcogBotRightTooth4; private Body twentyfourteethcogBotRightTooth5; private Body twentyfourteethcogBotRightTooth6; private Body twentyfourteethcogTopLeftTooth1; private Body twentyfourteethcogTopLeftTooth2; private Body twentyfourteethcogTopLeftTooth3; private Body twentyfourteethcogTopLeftTooth4; private Body twentyfourteethcogTopLeftTooth5; private Body twentyfourteethcogTopLeftTooth6; private Body twentyfourteethcogTopRightTooth1; private Body twentyfourteethcogTopRightTooth2; private Body twentyfourteethcogTopRightTooth3; private Body twentyfourteethcogTopRightTooth4; private Body twentyfourteethcogTopRightTooth5; private Body twentyfourteethcogTopRightTooth6; public void create() { float w = Gdx.graphics.getWidth(); float h = Gdx.graphics.getHeight(); camera = new OrthographicCamera(); camera.setToOrtho(false, w / 2, h / 2); world = new World(new Vector2(0, -9.8f), false); b2dr = new Box2DDebugRenderer(); twentyfourCog(0f, 0f, 0f, true, 0.7f, 30, 30); //   -  ,  -     x, //  -     y,  -   ,  - //  ,  -  ,  -   } //    24  public void twentyfourCog(float rotation, float xo, float yo, boolean n, float resize, int speed, int hf) { // ,   basis = createBasis(xo, yo, resize); //    4 ,    Box2D   //     3  8 twentyfourteethcog1 = createtwentyfourteethcog1(xo, yo, resize); twentyfourteethcog2 = createtwentyfourteethcog2(xo, yo, resize); twentyfourteethcog3 = createtwentyfourteethcog3(xo, yo, resize); twentyfourteethcog4 = createtwentyfourteethcog4(xo, yo, resize); //    twentyfourteethcog1.setTransform(xo, yo, rotation); twentyfourteethcog2.setTransform(xo, yo, rotation); twentyfourteethcog3.setTransform(xo, yo, rotation); twentyfourteethcog4.setTransform(xo, yo, rotation); //  ,   twentyfourteethcogTopRightTooth1 = createtwentyfourteethcogTopRightTooth1(xo, yo, xo, yo, resize); twentyfourteethcogTopRightTooth1.setTransform(xo, yo, rotation); twentyfourteethcogTopRightTooth2 = createtwentyfourteethcogTopRightTooth2(xo, yo, xo, yo, resize); twentyfourteethcogTopRightTooth2.setTransform(xo, yo, rotation); twentyfourteethcogTopRightTooth3 = createtwentyfourteethcogTopRightTooth3(xo, yo, xo, yo, resize); twentyfourteethcogTopRightTooth3.setTransform(xo, yo, rotation); twentyfourteethcogTopRightTooth4 = createtwentyfourteethcogTopRightTooth4(xo, yo, xo, yo, resize); twentyfourteethcogTopRightTooth4.setTransform(xo, yo, rotation); twentyfourteethcogTopRightTooth5 = createtwentyfourteethcogTopRightTooth5(xo, yo, xo, yo, resize); twentyfourteethcogTopRightTooth5.setTransform(xo, yo, rotation); twentyfourteethcogTopRightTooth6 = createtwentyfourteethcogTopRightTooth6(xo, yo, xo, yo, resize); twentyfourteethcogTopRightTooth6.setTransform(xo, yo, rotation); twentyfourteethcogTopLeftTooth1 = createtwentyfourteethcogTopLeftTooth1(xo, yo, xo, yo, resize); twentyfourteethcogTopLeftTooth1.setTransform(xo, yo, rotation); twentyfourteethcogTopLeftTooth2 = createtwentyfourteethcogTopLeftTooth2(xo, yo, xo, yo, resize); twentyfourteethcogTopLeftTooth2.setTransform(xo, yo, rotation); twentyfourteethcogTopLeftTooth3 = createtwentyfourteethcogTopLeftTooth3(xo, yo, xo, yo, resize); twentyfourteethcogTopLeftTooth3.setTransform(xo, yo, rotation); twentyfourteethcogTopLeftTooth4 = createtwentyfourteethcogTopLeftTooth4(xo, yo, xo, yo, resize); twentyfourteethcogTopLeftTooth4.setTransform(xo, yo, rotation); twentyfourteethcogTopLeftTooth5 = createtwentyfourteethcogTopLeftTooth5(xo, yo, xo, yo, resize); twentyfourteethcogTopLeftTooth5.setTransform(xo, yo, rotation); twentyfourteethcogTopLeftTooth6 = createtwentyfourteethcogTopLeftTooth6(xo, yo, xo, yo, resize); twentyfourteethcogTopLeftTooth6.setTransform(xo, yo, rotation); twentyfourteethcogBotRightTooth1 = createtwentyfourteethcogBotRightTooth1(xo, yo, xo, yo, resize); twentyfourteethcogBotRightTooth1.setTransform(xo, yo, rotation); twentyfourteethcogBotRightTooth2 = createtwentyfourteethcogBotRightTooth2(xo, yo, xo, yo, resize); twentyfourteethcogBotRightTooth2.setTransform(xo, yo, rotation); twentyfourteethcogBotRightTooth3 = createtwentyfourteethcogBotRightTooth3(xo, yo, xo, yo, resize); twentyfourteethcogBotRightTooth3.setTransform(xo, yo, rotation); twentyfourteethcogBotRightTooth4 = createtwentyfourteethcogBotRightTooth4(xo, yo, xo, yo, resize); twentyfourteethcogBotRightTooth4.setTransform(xo, yo, rotation); twentyfourteethcogBotRightTooth5 = createtwentyfourteethcogBotRightTooth5(xo, yo, xo, yo, resize); twentyfourteethcogBotRightTooth5.setTransform(xo, yo, rotation); twentyfourteethcogBotRightTooth6 = createtwentyfourteethcogBotRightTooth6(xo, yo, xo, yo, resize); twentyfourteethcogBotRightTooth6.setTransform(xo, yo, rotation); twentyfourteethcogBotLeftTooth1 = createtwentyfourteethcogBotLeftTooth1(xo, yo, xo, yo, resize); twentyfourteethcogBotLeftTooth1.setTransform(xo, yo, rotation); twentyfourteethcogBotLeftTooth2 = createtwentyfourteethcogBotLeftTooth2(xo, yo, xo, yo, resize); twentyfourteethcogBotLeftTooth2.setTransform(xo, yo, rotation); twentyfourteethcogBotLeftTooth3 = createtwentyfourteethcogBotLeftTooth3(xo, yo, xo, yo, resize); twentyfourteethcogBotLeftTooth3.setTransform(xo, yo, rotation); twentyfourteethcogBotLeftTooth4 = createtwentyfourteethcogBotLeftTooth4(xo, yo, xo, yo, resize); twentyfourteethcogBotLeftTooth4.setTransform(xo, yo, rotation); twentyfourteethcogBotLeftTooth5 = createtwentyfourteethcogBotLeftTooth5(xo, yo, xo, yo, resize); twentyfourteethcogBotLeftTooth5.setTransform(xo, yo, rotation); twentyfourteethcogBotLeftTooth6 = createtwentyfourteethcogBotLeftTooth6(xo, yo, xo, yo, resize); twentyfourteethcogBotLeftTooth6.setTransform(xo, yo, rotation); //   ,   weldMotJoint(twentyfourteethcog1, twentyfourteethcog2); weldMotJoint(twentyfourteethcog1, twentyfourteethcog3); weldMotJoint(twentyfourteethcog1, twentyfourteethcog4); weldMotJoint(twentyfourteethcog2, twentyfourteethcog1); weldMotJoint(twentyfourteethcog2, twentyfourteethcog3); weldMotJoint(twentyfourteethcog2, twentyfourteethcog4); weldMotJoint(twentyfourteethcog3, twentyfourteethcog1); weldMotJoint(twentyfourteethcog3, twentyfourteethcog2); weldMotJoint(twentyfourteethcog3, twentyfourteethcog4); weldMotJoint(twentyfourteethcog4, twentyfourteethcog1); weldMotJoint(twentyfourteethcog4, twentyfourteethcog2); weldMotJoint(twentyfourteethcog4, twentyfourteethcog3); weldMotJoint(twentyfourteethcog1, twentyfourteethcogTopRightTooth1); weldMotJoint(twentyfourteethcog1, twentyfourteethcogTopRightTooth2); weldMotJoint(twentyfourteethcog1, twentyfourteethcogTopRightTooth3); weldMotJoint(twentyfourteethcog1, twentyfourteethcogTopRightTooth4); weldMotJoint(twentyfourteethcog1, twentyfourteethcogTopRightTooth5); weldMotJoint(twentyfourteethcog1, twentyfourteethcogTopRightTooth6); weldMotJoint(twentyfourteethcog4, twentyfourteethcogTopLeftTooth1); weldMotJoint(twentyfourteethcog4, twentyfourteethcogTopLeftTooth2); weldMotJoint(twentyfourteethcog4, twentyfourteethcogTopLeftTooth3); weldMotJoint(twentyfourteethcog4, twentyfourteethcogTopLeftTooth4); weldMotJoint(twentyfourteethcog4, twentyfourteethcogTopLeftTooth5); weldMotJoint(twentyfourteethcog4, twentyfourteethcogTopLeftTooth6); weldMotJoint(twentyfourteethcog2, twentyfourteethcogBotRightTooth1); weldMotJoint(twentyfourteethcog2, twentyfourteethcogBotRightTooth2); weldMotJoint(twentyfourteethcog2, twentyfourteethcogBotRightTooth3); weldMotJoint(twentyfourteethcog2, twentyfourteethcogBotRightTooth4); weldMotJoint(twentyfourteethcog2, twentyfourteethcogBotRightTooth5); weldMotJoint(twentyfourteethcog2, twentyfourteethcogBotRightTooth6); weldMotJoint(twentyfourteethcog3, twentyfourteethcogBotLeftTooth1); weldMotJoint(twentyfourteethcog3, twentyfourteethcogBotLeftTooth2); weldMotJoint(twentyfourteethcog3, twentyfourteethcogBotLeftTooth3); weldMotJoint(twentyfourteethcog3, twentyfourteethcogBotLeftTooth4); weldMotJoint(twentyfourteethcog3, twentyfourteethcogBotLeftTooth5); weldMotJoint(twentyfourteethcog3, twentyfourteethcogBotLeftTooth6); //         revJoint(basis, twentyfourteethcog1, n, speed, hf); revJoint(basis, twentyfourteethcog2, n, speed, hf); revJoint(basis, twentyfourteethcog3, n, speed, hf); revJoint(basis, twentyfourteethcog4, n, speed, hf); } //   ,   12  public void twelveCog(float rotation, float xo, float yo, boolean n, float resize, int speed, int hf) { basis = createBasis(xo, yo, resize); Dodecangulum = createDodecangulum(xo, yo, resize); Dodecangulum.setTransform(xo, yo, rotation); DodecangulumTopLeftTooth1 = createTopLeftDodecangulumTooth1(xo, yo, xo, yo, resize); DodecangulumTopLeftTooth1.setTransform(xo, yo, rotation); DodecangulumTopLeftTooth2 = createTopLeftDodecangulumTooth2(xo, yo, xo, yo, resize); DodecangulumTopLeftTooth2.setTransform(xo, yo, rotation); DodecangulumTopLeftTooth3 = createTopLeftDodecangulumTooth3(xo, yo, xo, yo, resize); DodecangulumTopLeftTooth3.setTransform(xo, yo, rotation); DodecangulumTopRightTooth1 = createTopRightDodecangulumTooth1(xo, yo, xo, yo, resize); DodecangulumTopRightTooth1.setTransform(xo, yo, rotation); DodecangulumTopRightTooth2 = createTopRightDodecangulumTooth2(xo, yo, xo, yo, resize); DodecangulumTopRightTooth2.setTransform(xo, yo, rotation); DodecangulumTopRightTooth3 = createTopRightDodecangulumTooth3(xo, yo, xo, yo, resize); DodecangulumTopRightTooth3.setTransform(xo, yo, rotation); weldMotJoint(DodecangulumTopLeftTooth1, Dodecangulum); weldMotJoint(DodecangulumTopLeftTooth2, Dodecangulum); weldMotJoint(DodecangulumTopLeftTooth3, Dodecangulum); weldMotJoint(DodecangulumTopRightTooth1, Dodecangulum); weldMotJoint(DodecangulumTopRightTooth2, Dodecangulum); weldMotJoint(DodecangulumTopRightTooth3, Dodecangulum); Dodecangulum2 = createDodecangulum2(xo, yo, resize); Dodecangulum2.setTransform(xo, yo, rotation); DodecangulumBotLeftTooth1 = createBotLeftDodecangulumTooth1(xo, yo, xo, yo, resize); DodecangulumBotLeftTooth1.setTransform(xo, yo, rotation); DodecangulumBotLeftTooth2 = createBotLeftDodecangulumTooth2(xo, yo, xo, yo, resize); DodecangulumBotLeftTooth2.setTransform(xo, yo, rotation); DodecangulumBotLeftTooth3 = createBotLeftDodecangulumTooth3(xo, yo, xo, yo, resize); DodecangulumBotLeftTooth3.setTransform(xo, yo, rotation); DodecangulumBotRightTooth1 = createBotRightDodecangulumTooth1(xo, yo, xo, yo, resize); DodecangulumBotRightTooth1.setTransform(xo, yo, rotation); DodecangulumBotRightTooth2 = createBotRightDodecangulumTooth2(xo, yo, xo, yo, resize); DodecangulumBotRightTooth2.setTransform(xo, yo, rotation); DodecangulumBotRightTooth3 = createBotRightDodecangulumTooth3(xo, yo, xo, yo, resize); DodecangulumBotRightTooth3.setTransform(xo, yo, rotation); weldMotJoint(DodecangulumBotLeftTooth1, Dodecangulum2); weldMotJoint(DodecangulumBotLeftTooth2, Dodecangulum2); weldMotJoint(DodecangulumBotLeftTooth3, Dodecangulum2); weldMotJoint(DodecangulumBotRightTooth1, Dodecangulum2); weldMotJoint(DodecangulumBotRightTooth2, Dodecangulum2); weldMotJoint(DodecangulumBotRightTooth3, Dodecangulum2); weldMotJoint(Dodecangulum2, Dodecangulum); weldMotJoint(Dodecangulum, Dodecangulum2); revJoint(basis, Dodecangulum, n, speed, hf); revJoint(basis, Dodecangulum2, n, speed, hf); } //   ,   6  public void sixCog(float rotation, float xo, float yo, boolean n, float resize, int speed, int hf) { basis = createBasis(xo, yo, resize); hexagonum = createHexagonum(xo, yo, resize); revJoint(basis, hexagonum, n, speed, hf); hexagonum.setTransform(hexagonum.getPosition().x, hexagonum.getPosition().y, rotation); lefthextooth = createLeftHexTooth(xo, yo, xo, yo, resize); lefthextooth.setTransform(xo, yo, rotation); righthextooth = createRightHexTooth(xo, yo, xo, yo, resize); righthextooth.setTransform(xo, yo, rotation); toprighthextooth = createTopRightHexTooth(xo, yo, xo, yo, resize); toprighthextooth.setTransform(xo, yo, rotation); toplefthextooth = createTopLeftHexTooth(xo, yo, xo, yo, resize); toplefthextooth.setTransform(xo, yo, rotation); botlefthextooth = createBotLeftHexTooth(xo, yo, xo, yo, resize); botlefthextooth.setTransform(xo, yo, rotation); botrighthextooth = createBotRightHexTooth(xo, yo, xo, yo, resize); botrighthextooth.setTransform(xo, yo, rotation); weldMotJoint(hexagonum, lefthextooth); weldMotJoint(hexagonum, righthextooth); weldMotJoint(hexagonum, toprighthextooth); weldMotJoint(hexagonum, toplefthextooth); weldMotJoint(hexagonum, botlefthextooth); weldMotJoint(hexagonum, botrighthextooth); } //   ,   4  public void fourCog(float rotation, float xo, float yo, boolean n, float resize, int speed, int hf) { basis = createBasis(xo, yo, resize); box = createBox(xo, yo, resize); box.setTransform(box.getPosition().x, box.getPosition().y, rotation); toptooth = createTopTooth(xo, yo, xo, yo, resize); toptooth.setTransform(xo, yo, rotation); righttooth = createRightTooth(xo, yo, xo, yo, resize); righttooth.setTransform(xo, yo, rotation); bottooth = createBotTooth(xo, yo, xo, yo, resize); bottooth.setTransform(xo, yo, rotation); lefttooth = createLeftTooth(xo, yo, xo, yo, resize); lefttooth.setTransform(xo, yo, rotation); weldMotJoint(box, toptooth); weldMotJoint(box, righttooth); weldMotJoint(box, bottooth); weldMotJoint(box, lefttooth); revJoint(basis, box, n, speed, hf); } //      public void revJoint(Body body1, Body body2, boolean n, int speed, int hf) { RevoluteJointDef rjd = new RevoluteJointDef(); if (n == true) { rjd.enableMotor = true; rjd.motorSpeed = speed; rjd.maxMotorTorque = hf; } rjd.collideConnected = false; rjd.bodyA = body1; rjd.bodyB = body2; rjd.localAnchorA.set(body1.getPosition().x, body1.getPosition().y); rjd.localAnchorB.set(body2.getPosition().x, body2.getPosition().y); world.createJoint(rjd); } //   public void weldMotJoint(Body body1, Body body2) { WeldJointDef rjd = new WeldJointDef(); rjd.collideConnected = false; rjd.bodyA = body1; rjd.bodyB = body2; rjd.localAnchorA.set(body1.getPosition().x, body1.getPosition().y); rjd.localAnchorB.set(body2.getPosition().x, body2.getPosition().y); world.createJoint(rjd); } public void render() { update(Gdx.graphics.getDeltaTime()); Gdx.gl.glClearColor(0, 0, 0, 1); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); b2dr.render(world, camera.combined.scl(Constants.PPM)); } public void resize(int width, int height) { camera.setToOrtho(false, width / 2, height / 2); } public void dispose() { world.dispose(); b2dr.dispose(); } public void update(float delta) { world.step(1 / 60f, 6, 2); cameraUpdate(delta); } //      public void cameraUpdate(float delta) { Vector3 position = camera.position; position.x = basis.getPosition().x * Constants.PPM; position.y = basis.getPosition().y * Constants.PPM; camera.position.set(position); camera.update(); } //       4  public Body createBox(float dx, float dy, float resize) { Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(2f * 10 / utils.Constants.PPM * resize + dx, 2f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(2f * 10 / utils.Constants.PPM * resize + dx, -2f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(-2f * 10 / utils.Constants.PPM * resize + dx, 2f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(-2f * 10 / utils.Constants.PPM * resize + dx, -2f * 10 / utils.Constants.PPM * resize + dy); PolygonShape shape = new PolygonShape(); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(dx, dy); def.fixedRotation = false; fBody = world.createBody(def); shape.set(verticles); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.5f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); fBody.createFixture(fd); shape.dispose(); return fBody; } //   ,      public Body createTopTooth(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(-2f * 10 / utils.Constants.PPM * resize + dx, 2f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-0.5f * 10 / utils.Constants.PPM * resize + dx, 8f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(0.5f * 10 / utils.Constants.PPM * resize + dx, 8f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(2f * 10 / utils.Constants.PPM * resize + dx, 2f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createRightTooth(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(2f * 10 / utils.Constants.PPM * resize + dx, -2f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(8f * 10 / utils.Constants.PPM * resize + dx, 0.5f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(8f * 10 / utils.Constants.PPM * resize + dx, -0.5f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(2f * 10 / utils.Constants.PPM * resize + dx, 2f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createBotTooth(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(2f * 10 / utils.Constants.PPM * resize + dx, -2f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-0.5f * 10 / utils.Constants.PPM * resize + dx, -8f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(0.5f * 10 / utils.Constants.PPM * resize + dx, -8f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(-2f * 10 / utils.Constants.PPM * resize + dx, -2f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createLeftTooth(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(-2f * 10 / utils.Constants.PPM * resize + dx, -2f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-8f * 10 / utils.Constants.PPM * resize + dx, 0.5f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(-8f * 10 / utils.Constants.PPM * resize + dx, -0.5f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(-2f * 10 / utils.Constants.PPM * resize + dx, 2f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createBasis(float dx, float dy, float resize) { Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(2f * 10 / utils.Constants.PPM / 2 * resize + dx, 2f * 10 / utils.Constants.PPM / 2 * resize + dy); verticles[1] = new Vector2(2f * 10 / utils.Constants.PPM / 2 * resize + dx, -2f * 10 / utils.Constants.PPM / 2 * resize + dy); verticles[2] = new Vector2(-2f * 10 / utils.Constants.PPM / 2 * resize + dx, 2f * 10 / utils.Constants.PPM / 2 * resize + dy); verticles[3] = new Vector2(-2f * 10 / utils.Constants.PPM / 2 * resize + dx, -2f * 10 / utils.Constants.PPM / 2 * resize + dy); PolygonShape shape = new PolygonShape(); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.StaticBody; def.position.set(dx, dy); def.fixedRotation = false; fBody = world.createBody(def); shape.set(verticles); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.5f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); fBody.createFixture(fd); shape.dispose(); return fBody; } //   6  public Body createHexagonum(float dx, float dy, float resize) { Vector2[] verticles = new Vector2[6]; verticles[0] = new Vector2(0f * 10 / utils.Constants.PPM * resize + dx, 3f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(0f * 10 / utils.Constants.PPM * resize + dx, -3f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(2.5f * 10 / utils.Constants.PPM * resize + dx, 1.5f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(2.5f * 10 / utils.Constants.PPM * resize + dx, -1.5f * 10 / utils.Constants.PPM * resize + dy); verticles[4] = new Vector2(-2.5f * 10 / utils.Constants.PPM * resize + dx, -1.5f * 10 / utils.Constants.PPM * resize + dy); verticles[5] = new Vector2(-2.5f * 10 / utils.Constants.PPM * resize + dx, 1.5f * 10 / utils.Constants.PPM * resize + dy); PolygonShape shape = new PolygonShape(); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(dx, dy); def.fixedRotation = false; fBody = world.createBody(def); shape.set(verticles); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.5f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createLeftHexTooth(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(-2.5f * 10 / utils.Constants.PPM * resize + dx, -1.5f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-2.5f * 10 / utils.Constants.PPM * resize + dx, 1.5f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(-9.5f * 10 / utils.Constants.PPM * resize + dx, -0.5f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(-9.5f * 10 / utils.Constants.PPM * resize + dx, 0.5f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createRightHexTooth(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(2.5f * 10 / utils.Constants.PPM * resize + dx, -1.5f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(2.5f * 10 / utils.Constants.PPM * resize + dx, 1.5f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(9.5f * 10 / utils.Constants.PPM * resize + dx, -0.5f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(9.5f * 10 / utils.Constants.PPM * resize + dx, 0.5f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createTopRightHexTooth(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(0f * 10 / utils.Constants.PPM * resize + dx, 3f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(2.5f * 10 / utils.Constants.PPM * resize + dx, 1.5f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(5.9f * 10 / utils.Constants.PPM * resize + dx, 8.7f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(5.1f * 10 / utils.Constants.PPM * resize + dx, 9.3f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createTopLeftHexTooth(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(0f * 10 / utils.Constants.PPM * resize + dx, 3f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-2.5f * 10 / utils.Constants.PPM * resize + dx, 1.5f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(-5.9f * 10 / utils.Constants.PPM * resize + dx, 8.7f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(-5.1f * 10 / utils.Constants.PPM * resize + dx, 9.3f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createBotRightHexTooth(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(0f * 10 / utils.Constants.PPM * resize + dx, -3f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(2.5f * 10 / utils.Constants.PPM * resize + dx, -1.5f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(5.9f * 10 / utils.Constants.PPM * resize + dx, -8.7f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(5.1f * 10 / utils.Constants.PPM * resize + dx, -9.3f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createBotLeftHexTooth(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(0f * 10 / utils.Constants.PPM * resize + dx, -3f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-2.5f * 10 / utils.Constants.PPM * resize + dx, -1.5f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(-5.9f * 10 / utils.Constants.PPM * resize + dx, -8.7f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(-5.1f * 10 / utils.Constants.PPM * resize + dx, -9.3f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } //   12 ,   2  -    public Body createDodecangulum(float dx, float dy, float resize) { Vector2[] verticles = new Vector2[8]; verticles[0] = new Vector2(-4f * 10 / utils.Constants.PPM * resize + dx, 0 * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-3.4f * 10 / utils.Constants.PPM * resize + dx, 2f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(-2.2f * 10 / utils.Constants.PPM * resize + dx, 3.6f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(0f * 10 / utils.Constants.PPM * resize + dx, 4f * 10 / utils.Constants.PPM * resize + dy); verticles[4] = new Vector2(2.2f * 10 / utils.Constants.PPM * resize + dx, 3.6f * 10 / utils.Constants.PPM * resize + dy); verticles[5] = new Vector2(3.4f * 10 / utils.Constants.PPM * resize + dx, 2f * 10 / utils.Constants.PPM * resize + dy); verticles[6] = new Vector2(4 * 10 / utils.Constants.PPM * resize + dx, 0 * 10 / utils.Constants.PPM * resize + dy); verticles[7] = new Vector2(0 * 10 / utils.Constants.PPM * resize + dx, 0 * 10 / utils.Constants.PPM * resize + dy); PolygonShape shape = new PolygonShape(); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(dx, dy); def.fixedRotation = false; fBody = world.createBody(def); shape.set(verticles); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.5f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createDodecangulum2(float dx, float dy, float resize) { Vector2[] verticles = new Vector2[8]; verticles[0] = new Vector2(4 * 10 / utils.Constants.PPM * resize + dx, 0 * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(3.4f * 10 / utils.Constants.PPM * resize + dx, -2f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(2.2f * 10 / utils.Constants.PPM * resize + dx, -3.6f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(0f * 10 / utils.Constants.PPM * resize + dx, -4f * 10 / utils.Constants.PPM * resize + dy); verticles[4] = new Vector2(-2.2f * 10 / utils.Constants.PPM * resize + dx, -3.6f * 10 / utils.Constants.PPM * resize + dy); verticles[5] = new Vector2(-3.4f * 10 / utils.Constants.PPM * resize + dx, -2f * 10 / utils.Constants.PPM * resize + dy); verticles[6] = new Vector2(-4f * 10 / utils.Constants.PPM * resize + dx, 0 * 10 / utils.Constants.PPM * resize + dy); verticles[7] = new Vector2(0f * 10 / utils.Constants.PPM * resize + dx, 0 * 10 / utils.Constants.PPM * resize + dy); PolygonShape shape = new PolygonShape(); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(dx, dy); def.fixedRotation = false; fBody = world.createBody(def); shape.set(verticles); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.5f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createTopLeftDodecangulumTooth1(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(0f * 10 / utils.Constants.PPM * resize + dx, 4f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-2.2f * 10 / utils.Constants.PPM * resize + dx, 3.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(-2.5f * 10 / utils.Constants.PPM * resize + dx, 11.6f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(-3.6f * 10 / utils.Constants.PPM * resize + dx, 11.3f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createTopLeftDodecangulumTooth2(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(-3.4f * 10 / utils.Constants.PPM * resize + dx, 2f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-2.2f * 10 / utils.Constants.PPM * resize + dx, 3.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(-8.1f * 10 / utils.Constants.PPM * resize + dx, 8.8f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(-8.7f * 10 / utils.Constants.PPM * resize + dx, 8.1f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createTopLeftDodecangulumTooth3(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(-4.0f * 10 / utils.Constants.PPM * resize + dx, 0 * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-3.4f * 10 / utils.Constants.PPM * resize + dx, 2f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(-11.25f * 10 / utils.Constants.PPM * resize + dx, 3.9f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(-11.5f * 10 / utils.Constants.PPM * resize + dx, 2.7f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createTopRightDodecangulumTooth1(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(0f * 10 / utils.Constants.PPM * resize + dx, 4f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(2.2f * 10 / utils.Constants.PPM * resize + dx, 3.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(2.5f * 10 / utils.Constants.PPM * resize + dx, 11.6f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(3.6f * 10 / utils.Constants.PPM * resize + dx, 11.3f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createTopRightDodecangulumTooth2(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(3.4f * 10 / utils.Constants.PPM * resize + dx, 2f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(2.2f * 10 / utils.Constants.PPM * resize + dx, 3.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(8.1f * 10 / utils.Constants.PPM * resize + dx, 8.8f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(8.7f * 10 / utils.Constants.PPM * resize + dx, 8.1f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createTopRightDodecangulumTooth3(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(4.0f * 10 / utils.Constants.PPM * resize + dx, 0 * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(3.4f * 10 / utils.Constants.PPM * resize + dx, 2f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(11.25f * 10 / utils.Constants.PPM * resize + dx, 3.9f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(11.5f * 10 / utils.Constants.PPM * resize + dx, 2.7f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createBotLeftDodecangulumTooth1(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(0f * 10 / utils.Constants.PPM * resize + dx, -4f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-2.2f * 10 / utils.Constants.PPM * resize + dx, -3.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(-2.5f * 10 / utils.Constants.PPM * resize + dx, -11.6f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(-3.6f * 10 / utils.Constants.PPM * resize + dx, -11.3f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createBotLeftDodecangulumTooth2(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(-3.4f * 10 / utils.Constants.PPM * resize + dx, -2f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-2.2f * 10 / utils.Constants.PPM * resize + dx, -3.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(-8.1f * 10 / utils.Constants.PPM * resize + dx, -8.8f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(-8.7f * 10 / utils.Constants.PPM * resize + dx, -8.1f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createBotLeftDodecangulumTooth3(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(-4.0f * 10 / utils.Constants.PPM * resize + dx, 0 * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-3.4f * 10 / utils.Constants.PPM * resize + dx, -2f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(-11.25f * 10 / utils.Constants.PPM * resize + dx, -3.9f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(-11.5f * 10 / utils.Constants.PPM * resize + dx, -2.7f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createBotRightDodecangulumTooth1(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(0f * 10 / utils.Constants.PPM * resize + dx, -4f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(2.2f * 10 / utils.Constants.PPM * resize + dx, -3.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(2.5f * 10 / utils.Constants.PPM * resize + dx, -11.6f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(3.6f * 10 / utils.Constants.PPM * resize + dx, -11.3f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createBotRightDodecangulumTooth2(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(3.4f * 10 / utils.Constants.PPM * resize + dx, -2f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(2.2f * 10 / utils.Constants.PPM * resize + dx, -3.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(8.1f * 10 / utils.Constants.PPM * resize + dx, -8.8f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(8.7f * 10 / utils.Constants.PPM * resize + dx, -8.1f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createBotRightDodecangulumTooth3(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(4.0f * 10 / utils.Constants.PPM * resize + dx, 0 * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(3.4f * 10 / utils.Constants.PPM * resize + dx, -2f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(11.25f * 10 / utils.Constants.PPM * resize + dx, -3.9f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(11.5f * 10 / utils.Constants.PPM * resize + dx, -2.7f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } //   24  ,  4   public Body createtwentyfourteethcog1(float dx, float dy, float resize) { Vector2[] verticles = new Vector2[8]; verticles[0] = new Vector2(0 * 10 / utils.Constants.PPM * resize + dx, 8f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(2.1f * 10 / utils.Constants.PPM * resize + dx, 7.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(4f * 10 / utils.Constants.PPM * resize + dx, 6.9f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(5.6f * 10 / utils.Constants.PPM * resize + dx, 5.6f * 10 / utils.Constants.PPM * resize + dy); verticles[4] = new Vector2(6.9f * 10 / utils.Constants.PPM * resize + dx, 4f * 10 / utils.Constants.PPM * resize + dy); verticles[5] = new Vector2(7.6f * 10 / utils.Constants.PPM * resize + dx, 2.1f * 10 / utils.Constants.PPM * resize + dy); verticles[6] = new Vector2(8f * 10 / utils.Constants.PPM * resize + dx, 0 * 10 / utils.Constants.PPM * resize + dy); verticles[7] = new Vector2(0f * 10 / utils.Constants.PPM * resize + dx, 0 * 10 / utils.Constants.PPM * resize + dy); PolygonShape shape = new PolygonShape(); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(dx, dy); def.fixedRotation = false; fBody = world.createBody(def); shape.set(verticles); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.5f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcog2(float dx, float dy, float resize) { Vector2[] verticles = new Vector2[8]; verticles[0] = new Vector2(0 * 10 / utils.Constants.PPM * resize + dx, -8f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(2.1f * 10 / utils.Constants.PPM * resize + dx, -7.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(4f * 10 / utils.Constants.PPM * resize + dx, -6.9f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(5.6f * 10 / utils.Constants.PPM * resize + dx, -5.6f * 10 / utils.Constants.PPM * resize + dy); verticles[4] = new Vector2(6.9f * 10 / utils.Constants.PPM * resize + dx, -4f * 10 / utils.Constants.PPM * resize + dy); verticles[5] = new Vector2(7.6f * 10 / utils.Constants.PPM * resize + dx, -2.1f * 10 / utils.Constants.PPM * resize + dy); verticles[6] = new Vector2(8f * 10 / utils.Constants.PPM * resize + dx, 0 * 10 / utils.Constants.PPM * resize + dy); verticles[7] = new Vector2(0f * 10 / utils.Constants.PPM * resize + dx, 0 * 10 / utils.Constants.PPM * resize + dy); PolygonShape shape = new PolygonShape(); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(dx, dy); def.fixedRotation = false; fBody = world.createBody(def); shape.set(verticles); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.5f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcog3(float dx, float dy, float resize) { Vector2[] verticles = new Vector2[8]; verticles[0] = new Vector2(0 * 10f / utils.Constants.PPM * resize + dx, -8f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-2.1f * 10 / utils.Constants.PPM * resize + dx, -7.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(-4f * 10 / utils.Constants.PPM * resize + dx, -6.9f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(-5.6f * 10 / utils.Constants.PPM * resize + dx, -5.6f * 10 / utils.Constants.PPM * resize + dy); verticles[4] = new Vector2(-6.9f * 10 / utils.Constants.PPM * resize + dx, -4f * 10 / utils.Constants.PPM * resize + dy); verticles[5] = new Vector2(-7.6f * 10 / utils.Constants.PPM * resize + dx, -2.1f * 10 / utils.Constants.PPM * resize + dy); verticles[6] = new Vector2(-8f * 10 / utils.Constants.PPM * resize + dx, 0 * 10 / utils.Constants.PPM * resize + dy); verticles[7] = new Vector2(0f * 10 / utils.Constants.PPM * resize + dx, 0 * 10 / utils.Constants.PPM * resize + dy); PolygonShape shape = new PolygonShape(); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(dx, dy); def.fixedRotation = false; fBody = world.createBody(def); shape.set(verticles); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.5f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcog4(float dx, float dy, float resize) { Vector2[] verticles = new Vector2[8]; verticles[0] = new Vector2(-0 * 10 / utils.Constants.PPM * resize + dx, 8 * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-2.1f * 10 / utils.Constants.PPM * resize + dx, 7.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(-4f * 10 / utils.Constants.PPM * resize + dx, 6.9f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(-5.6f * 10 / utils.Constants.PPM * resize + dx, 5.6f * 10 / utils.Constants.PPM * resize + dy); verticles[4] = new Vector2(-6.9f * 10 / utils.Constants.PPM * resize + dx, 4f * 10 / utils.Constants.PPM * resize + dy); verticles[5] = new Vector2(-7.6f * 10 / utils.Constants.PPM * resize + dx, 2.1f * 10 / utils.Constants.PPM * resize + dy); verticles[6] = new Vector2(-8f * 10 / utils.Constants.PPM * resize + dx, 0 * 10 / utils.Constants.PPM * resize + dy); verticles[7] = new Vector2(0f * 10 / utils.Constants.PPM * resize + dx, 0 * 10 / utils.Constants.PPM * resize + dy); PolygonShape shape = new PolygonShape(); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(dx, dy); def.fixedRotation = false; fBody = world.createBody(def); shape.set(verticles); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.5f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcogTopRightTooth1(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(0f * 10 / utils.Constants.PPM * resize + dx, 8f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(2.1f * 10 / utils.Constants.PPM * resize + dx, 7.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(2.0f * 10 / utils.Constants.PPM * resize + dx, 15.8f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(3.0f * 10 / utils.Constants.PPM * resize + dx, 15.6f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcogTopRightTooth2(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(4f * 10 / utils.Constants.PPM * resize + dx, 6.9f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(2.1f * 10 / utils.Constants.PPM * resize + dx, 7.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(5.6f * 10 / utils.Constants.PPM * resize + dx, 14.9f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(6.6f * 10 / utils.Constants.PPM * resize + dx, 14.5f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcogTopRightTooth3(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(4f * 10 / utils.Constants.PPM * resize + dx, 6.9f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(5.6f * 10 / utils.Constants.PPM * resize + dx, 5.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(10.2f * 10 / utils.Constants.PPM * resize + dx, 12.2f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(9.5f * 10 / utils.Constants.PPM * resize + dx, 12.8f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcogTopRightTooth4(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(6.9f * 10 / utils.Constants.PPM * resize + dx, 4.0f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(5.6f * 10 / utils.Constants.PPM * resize + dx, 5.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(12.2f * 10 / utils.Constants.PPM * resize + dx, 10.2f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(12.8f * 10 / utils.Constants.PPM * resize + dx, 9.5f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcogTopRightTooth5(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(6.9f * 10 / utils.Constants.PPM * resize + dx, 4.0f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(7.6f * 10 / utils.Constants.PPM * resize + dx, 2.1f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(14.5f * 10 / utils.Constants.PPM * resize + dx, 6.6f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(14.9f * 10 / utils.Constants.PPM * resize + dx, 5.6f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcogTopRightTooth6(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(8f * 10 / utils.Constants.PPM * resize + dx, 0.0f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(7.6f * 10 / utils.Constants.PPM * resize + dx, 2.1f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(15.8f * 10 / utils.Constants.PPM * resize + dx, 2.0f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(15.6f * 10 / utils.Constants.PPM * resize + dx, 3.0f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcogTopLeftTooth1(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(0f * 10 / utils.Constants.PPM * resize + dx, 8f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-2.1f * 10 / utils.Constants.PPM * resize + dx, 7.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(-2.0f * 10 / utils.Constants.PPM * resize + dx, 15.8f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(-3.0f * 10 / utils.Constants.PPM * resize + dx, 15.6f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcogTopLeftTooth2(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(-4f * 10 / utils.Constants.PPM * resize + dx, 6.9f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-2.1f * 10 / utils.Constants.PPM * resize + dx, 7.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(-5.6f * 10 / utils.Constants.PPM * resize + dx, 14.9f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(-6.6f * 10 / utils.Constants.PPM * resize + dx, 14.5f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcogTopLeftTooth3(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(-4f * 10 / utils.Constants.PPM * resize + dx, 6.9f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-5.6f * 10 / utils.Constants.PPM * resize + dx, 5.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(-10.2f * 10 / utils.Constants.PPM * resize + dx, 12.2f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(-9.5f * 10 / utils.Constants.PPM * resize + dx, 12.8f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcogTopLeftTooth4(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(-6.9f * 10 / utils.Constants.PPM * resize + dx, 4.0f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-5.6f * 10 / utils.Constants.PPM * resize + dx, 5.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(-12.2f * 10 / utils.Constants.PPM * resize + dx, 10.2f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(-12.8f * 10 / utils.Constants.PPM * resize + dx, 9.5f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcogTopLeftTooth5(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(-6.9f * 10 / utils.Constants.PPM * resize + dx, 4.0f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-7.6f * 10 / utils.Constants.PPM * resize + dx, 2.1f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(-14.5f * 10 / utils.Constants.PPM * resize + dx, 6.6f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(-14.9f * 10 / utils.Constants.PPM * resize + dx, 5.6f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcogTopLeftTooth6(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(-8f * 10 / utils.Constants.PPM * resize + dx, 0.0f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-7.6f * 10 / utils.Constants.PPM * resize + dx, 2.1f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(-15.8f * 10 / utils.Constants.PPM * resize + dx, 2.0f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(-15.6f * 10 / utils.Constants.PPM * resize + dx, 3.0f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcogBotRightTooth1(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(0f * 10 / utils.Constants.PPM * resize + dx, -8f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(2.1f * 10 / utils.Constants.PPM * resize + dx, -7.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(2.0f * 10 / utils.Constants.PPM * resize + dx, -15.8f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(3.0f * 10 / utils.Constants.PPM * resize + dx, -15.6f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcogBotRightTooth2(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(4f * 10 / utils.Constants.PPM * resize + dx, -6.9f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(2.1f * 10 / utils.Constants.PPM * resize + dx, -7.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(5.6f * 10 / utils.Constants.PPM * resize + dx, -14.9f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(6.6f * 10 / utils.Constants.PPM * resize + dx, -14.5f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcogBotRightTooth3(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(4f * 10 / utils.Constants.PPM * resize + dx, -6.9f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(5.6f * 10 / utils.Constants.PPM * resize + dx, -5.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(10.2f * 10 / utils.Constants.PPM * resize + dx, -12.2f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(9.5f * 10 / utils.Constants.PPM * resize + dx, -12.8f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcogBotRightTooth4(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(6.9f * 10 / utils.Constants.PPM * resize + dx, -4.0f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(5.6f * 10 / utils.Constants.PPM * resize + dx, -5.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(12.2f * 10 / utils.Constants.PPM * resize + dx, -10.2f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(12.8f * 10 / utils.Constants.PPM * resize + dx, -9.5f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcogBotRightTooth5(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(6.9f * 10 / utils.Constants.PPM * resize + dx, -4.0f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(7.6f * 10 / utils.Constants.PPM * resize + dx, -2.1f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(14.5f * 10 / utils.Constants.PPM * resize + dx, -6.6f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(14.9f * 10 / utils.Constants.PPM * resize + dx, -5.6f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcogBotRightTooth6(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(8f * 10 / utils.Constants.PPM * resize + dx, 0.0f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(7.6f * 10 / utils.Constants.PPM * resize + dx, -2.1f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(15.8f * 10 / utils.Constants.PPM * resize + dx, -2.0f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(15.6f * 10 / utils.Constants.PPM * resize + dx, -3.0f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcogBotLeftTooth1(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(0f * 10 / utils.Constants.PPM * resize + dx, -8f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-2.1f * 10 / utils.Constants.PPM * resize + dx, -7.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(-2.0f * 10 / utils.Constants.PPM * resize + dx, -15.8f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(-3.0f * 10 / utils.Constants.PPM * resize + dx, -15.6f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcogBotLeftTooth2(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(-4f * 10 / utils.Constants.PPM * resize + dx, -6.9f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-2.1f * 10 / utils.Constants.PPM * resize + dx, -7.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(-5.6f * 10 / utils.Constants.PPM * resize + dx, -14.9f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(-6.6f * 10 / utils.Constants.PPM * resize + dx, -14.5f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcogBotLeftTooth3(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(-4f * 10 / utils.Constants.PPM * resize + dx, -6.9f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-5.6f * 10 / utils.Constants.PPM * resize + dx, -5.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(-10.2f * 10 / utils.Constants.PPM * resize + dx, -12.2f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(-9.5f * 10 / utils.Constants.PPM * resize + dx, -12.8f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcogBotLeftTooth4(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(-6.9f * 10 / utils.Constants.PPM * resize + dx, -4.0f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-5.6f * 10 / utils.Constants.PPM * resize + dx, -5.6f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(-12.2f * 10 / utils.Constants.PPM * resize + dx, -10.2f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(-12.8f * 10 / utils.Constants.PPM * resize + dx, -9.5f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcogBotLeftTooth5(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(-6.9f * 10 / utils.Constants.PPM * resize + dx, -4.0f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-7.6f * 10 / utils.Constants.PPM * resize + dx, -2.1f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(-14.5f * 10 / utils.Constants.PPM * resize + dx, -6.6f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(-14.9f * 10 / utils.Constants.PPM * resize + dx, -5.6f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } public Body createtwentyfourteethcogBotLeftTooth6(float xo, float yo, float dx, float dy, float resize) { PolygonShape shape = new PolygonShape(); Vector2[] verticles = new Vector2[4]; verticles[0] = new Vector2(-8f * 10 / utils.Constants.PPM * resize + dx, 0.0f * 10 / utils.Constants.PPM * resize + dy); verticles[1] = new Vector2(-7.6f * 10 / utils.Constants.PPM * resize + dx, -2.1f * 10 / utils.Constants.PPM * resize + dy); verticles[2] = new Vector2(-15.8f * 10 / utils.Constants.PPM * resize + dx, -2.0f * 10 / utils.Constants.PPM * resize + dy); verticles[3] = new Vector2(-15.6f * 10 / utils.Constants.PPM * resize + dx, -3.0f * 10 / utils.Constants.PPM * resize + dy); Body fBody; BodyDef def = new BodyDef(); def.type = BodyDef.BodyType.DynamicBody; def.position.set(xo * 10 / utils.Constants.PPM + dx, yo * 10 / utils.Constants.PPM + dy); def.fixedRotation = false; shape.set(verticles); fBody = world.createBody(def); FixtureDef fd = new FixtureDef(); fd.shape = shape; fd.friction = 0.7f; fd.density = 3f; fd.restitution = 0.5f; fBody.createFixture(fd); shape.dispose(); return fBody; } } 



صورة

الشكل 3. والعتاد مع 4 أسنان.

صورة

الشكل 4. والعتاد مع 6 أسنان.

صورة

الشكل 5. والعتاد مع 12 الأسنان.

صورة

الشكل 6. والعتاد مع 24 أسنان.

شكرا لك على القراءة حتى النهاية! آمل أن يكون كود هذا المقال قد ساعدك كثيرًا في مشروعك!

PS سأجيب على جميع الأسئلة في التعليقات.

Source: https://habr.com/ru/post/ar450698/


All Articles