Example usage for com.badlogic.gdx.physics.box2d Joint getBodyA

List of usage examples for com.badlogic.gdx.physics.box2d Joint getBodyA

Introduction

In this page you can find the example usage for com.badlogic.gdx.physics.box2d Joint getBodyA.

Prototype

public Body getBodyA() 

Source Link

Document

Get the first body attached to this joint.

Usage

From source file:com.altportalgames.colorrain.utils.Box2DDebugRenderer.java

License:Apache License

private void drawJoint(Joint joint) {
    Body bodyA = joint.getBodyA();
    Body bodyB = joint.getBodyB();/*from   w  ww . ja  v a2 s  . c o m*/
    Transform xf1 = bodyA.getTransform();
    Transform xf2 = bodyB.getTransform();

    Vector2 x1 = xf1.getPosition();
    Vector2 x2 = xf2.getPosition();
    Vector2 p1 = joint.getAnchorA();
    Vector2 p2 = joint.getAnchorB();

    if (joint.getType() == JointType.DistanceJoint) {
        drawSegment(p1, p2, JOINT_COLOR);
    } else if (joint.getType() == JointType.PulleyJoint) {
        PulleyJoint pulley = (PulleyJoint) joint;
        Vector2 s1 = pulley.getGroundAnchorA();
        Vector2 s2 = pulley.getGroundAnchorB();
        drawSegment(s1, p1, JOINT_COLOR);
        drawSegment(s2, p2, JOINT_COLOR);
        drawSegment(s1, s2, JOINT_COLOR);
    } else if (joint.getType() == JointType.MouseJoint) {
    } else {
        drawSegment(x1, p1, JOINT_COLOR);
        drawSegment(p1, p2, JOINT_COLOR);
        drawSegment(x2, p2, JOINT_COLOR);
    }
}

From source file:com.blindtigergames.werescrewed.debug.SBox2DDebugRenderer.java

License:Apache License

private void drawJoint(Joint joint) {
    Body bodyA = joint.getBodyA();
    Body bodyB = joint.getBodyB();/*from w w  w .  j  a  v a2 s. c om*/
    Transform xf1 = bodyA.getTransform();
    Transform xf2 = bodyB.getTransform();

    Vector2 x1 = xf1.getPosition();
    Vector2 x2 = xf2.getPosition();
    Vector2 p1 = joint.getAnchorA();
    Vector2 p2 = joint.getAnchorB();

    if (joint.getType() == JointType.DistanceJoint) {
        drawSegment(p1, p2, JOINT_COLOR);
    } else if (joint.getType() == JointType.PulleyJoint) {
        PulleyJoint pulley = (PulleyJoint) joint;
        Vector2 s1 = pulley.getGroundAnchorA();
        Vector2 s2 = pulley.getGroundAnchorB();
        drawSegment(s1, p1, JOINT_COLOR);
        drawSegment(s2, p2, JOINT_COLOR);
        drawSegment(s1, s2, JOINT_COLOR);
    } else if (joint.getType() == JointType.MouseJoint) {
        drawSegment(joint.getAnchorA(), joint.getAnchorB(), JOINT_COLOR);
    } else {
        drawSegment(x1, p1, JOINT_COLOR);
        drawSegment(p1, p2, JOINT_COLOR);
        drawSegment(x2, p2, JOINT_COLOR);
    }
}

From source file:com.johnogel.astrobros.levels.BonusLevel.java

@Override

public void update() {
    if (Gdx.input.isKeyJustPressed(Input.Keys.P)) {
        resolvePause();//  w  ww  .jav a  2 s.  c  o m
    }

    if (!paused) {

        if (sizzle) {
            Random r = new Random();

            sound_player.playSound(SoundPlayer.SIZZLE_SOUND, .9f, r.nextFloat() * 5 + 1.0f);
            sizzle = false;
        }

        this.camera_last_x = camera.position.x;
        this.camera_last_y = camera.position.y;

        mngr.updateGameObjects();

        if (dead) {
            notifyLoss();
        }

        /*this was the part where you could switch, but I'm nixing it
        //switches player if connected
        if(Gdx.input.isKeyJustPressed(Keys.RIGHT)){
                
        player_index++;
        if(player_index > controlled_bros.size - 1){
            player_index = 0;
        }
        player.disablePlayer();
        player = (Player)controlled_bros.get(player_index);
        player.enablePlayer();
        }
                
        //switches player if connected
        if(Gdx.input.isKeyJustPressed(Keys.LEFT)){
                
        player_index--;
        if(player_index == -1 || player_index > controlled_bros.size - 1){
            player_index = controlled_bros.size - 1;
        }
        player.disablePlayer();
        player = (Player)controlled_bros.get(player_index);
        player.enablePlayer();
        }
        */
        gravitate();
        if (!player.isSpacePressed()) {
            Array<Joint> joints = new Array();
            world.getJoints(joints);
            for (Joint j : joints) {
                if (j.getBodyA().equals(player.getBody()) || j.getBodyB().equals(player.getBody())) {
                    world.destroyJoint(j);
                }
            }
            int size = controlled_bros.size;
            for (int i = 0; i < size; i++) {

                //System.out.println("---------------------------------------ADD DEM FREE BODIES");
                free_bodies.add(controlled_bodies.pop());
                free_bros.add(controlled_bros.pop());

            }
            controlled_bros.clear();
            controlled_bodies.clear();
            free_bros.removeValue(player, false);
            free_bodies.removeValue(player.getBody(), false);
            controlled_bodies.add(player.getBody());
            controlled_bros.add(player);
        }

        //need to figure out way to remove bodies from arrays outside of contact listener
        attachBodies();
        if (joint_def_created) {

            joint_def_created = false;
        }

        //checks if any bro is in goldilocks zone. I'm not sure if I'm spelling that correctly
        int i = 0;
        goldilocks = false;
        for (AstroBro b : bros) {
            if (CircleObject.distance(b, inner_orbit) > inner_orbit.getRadius()
                    && CircleObject.distance(b, outer_orbit) < outer_orbit.getRadius()) {
                //System.out.println("GOLDILOCKS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
                i++;
                goldilocks = true;

                if (is_red) {
                    //                    inner_orbit.setTexture(BoundaryCircle.BLUE);
                    //                    outer_orbit.setTexture(BoundaryCircle.BLUE);
                    inner_orbit.setTexture(blue_texture);
                    outer_orbit.setTexture(blue_texture);

                    is_red = false;

                }
            }
            if (CircleObject.distance(b, inner_orbit) > outer_boundary.getRadius()) {
                this.enforceOutOfBounds(b);

            }
        }

        safe_bros = i;
        score_chars = i + " / " + this.total_bros;

        if (!goldilocks && !is_red) {
            inner_orbit.setTexture(red_texture);
            outer_orbit.setTexture(red_texture);
            is_red = true;
        }

        ticker++;
        if (ticker % 60 == 0) {
            timer--;
            timer_chars = "" + timer;
            if (safe_bros == bros.size - 1) {
                win_timer--;

            } else {
                win_timer = this.WIN_TIMER_MAX;

            }
            win_timer_chars = "" + win_timer;
        }
        if (win_timer < 1 && safe_bros == bros.size - 1) {
            notifyWin();
        }

        if (bros.size < total_bros) {
            notifyLoss();
        }

        //check if level is over
        if (timer < 1) {
            if (this.safe_bros > 0) {
                notifyWin();
            }

            else {
                notifyLoss();
            }

        }

        while (bumps > 0) {
            float pitch = MathUtils.random(.4f) + .42f;
            System.out.println("PITCH: " + pitch);
            sound_player.playSound(SoundPlayer.BUMP_SOUND, .01f, pitch);
            bumps--;
        }

        cleanUp();

        if (!dead) {
            updateSunSound();
            background.update();
            updateLocators(mngr.getSpriteBatch());
        }

    }
}

From source file:com.johnogel.astrobros.levels.Level.java

@Override
public void update() {
    //player.update(mngr.getSpriteBatch());
    if (Gdx.input.isKeyJustPressed(Keys.P)) {
        resolvePause();//from   w w w .  ja va 2 s  . c  o m
    }

    if (!paused) {

        if (sizzle) {
            Random r = new Random();

            sound_player.playSound(SoundPlayer.SIZZLE_SOUND, .9f, r.nextFloat() * 5 + 1.0f);
            sizzle = false;
        }

        this.camera_last_x = camera.position.x;
        this.camera_last_y = camera.position.y;

        mngr.updateGameObjects();

        if (dead) {
            notifyLoss();
        }

        /*this was the part where you could switch, but I'm nixing it
        //switches player if connected
        if(Gdx.input.isKeyJustPressed(Keys.RIGHT)){
                
        player_index++;
        if(player_index > controlled_bros.size - 1){
            player_index = 0;
        }
        player.disablePlayer();
        player = (Player)controlled_bros.get(player_index);
        player.enablePlayer();
        }
                
        //switches player if connected
        if(Gdx.input.isKeyJustPressed(Keys.LEFT)){
                
        player_index--;
        if(player_index == -1 || player_index > controlled_bros.size - 1){
            player_index = controlled_bros.size - 1;
        }
        player.disablePlayer();
        player = (Player)controlled_bros.get(player_index);
        player.enablePlayer();
        }
        */
        gravitate();
        if (!player.isSpacePressed()) {
            Array<Joint> joints = new Array();
            world.getJoints(joints);
            for (Joint j : joints) {
                if (j.getBodyA().equals(player.getBody()) || j.getBodyB().equals(player.getBody())) {
                    world.destroyJoint(j);
                }
            }
            int size = controlled_bros.size;
            for (int i = 0; i < size; i++) {

                //System.out.println("---------------------------------------ADD DEM FREE BODIES");
                free_bodies.add(controlled_bodies.pop());
                free_bros.add(controlled_bros.pop());

            }
            controlled_bros.clear();
            controlled_bodies.clear();
            free_bros.removeValue(player, false);
            free_bodies.removeValue(player.getBody(), false);
            controlled_bodies.add(player.getBody());
            controlled_bros.add(player);
        }

        //need to figure out way to remove bodies from arrays outside of contact listener
        attachBodies();
        if (joint_def_created) {

            joint_def_created = false;
        }

        //checks if any bro is in goldilocks zone. I'm not sure if I'm spelling that correctly
        int i = 0;
        goldilocks = false;
        for (AstroBro b : bros) {
            if (CircleObject.distance(b, inner_orbit) > inner_orbit.getRadius()
                    && CircleObject.distance(b, outer_orbit) < outer_orbit.getRadius()) {
                //System.out.println("GOLDILOCKS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
                if (!b.equals(player)) {
                    i++;
                }
                goldilocks = true;

                if (is_red) {
                    //                    inner_orbit.setTexture(BoundaryCircle.BLUE);
                    //                    outer_orbit.setTexture(BoundaryCircle.BLUE);
                    inner_orbit.setTexture(blue_texture);
                    outer_orbit.setTexture(blue_texture);

                    is_red = false;

                }
            }
            if (CircleObject.distance(b, inner_orbit) > outer_boundary.getRadius()) {
                this.enforceOutOfBounds(b);

            }
        }

        safe_bros = i;
        score_chars = i + " / " + this.total_bros;

        if (!goldilocks && !is_red) {
            inner_orbit.setTexture(red_texture);
            outer_orbit.setTexture(red_texture);
            is_red = true;
        }

        ticker++;
        if (ticker % 60 == 0) {
            timer--;
            timer_chars = "" + timer;
            if (safe_bros == bros.size - 1) {
                win_timer--;

            } else {
                win_timer = this.WIN_TIMER_MAX;

            }
            win_timer_chars = "" + win_timer;
        }
        if (win_timer < 1 && safe_bros == bros.size - 1) {
            notifyWin();
        }

        if (bros.size == 1) {
            notifyLoss();
        }

        //check if level is over
        if (timer < 1) {
            if (this.safe_bros > 0) {
                notifyWin();
            }

            else {
                notifyLoss();
            }

        }

        while (bumps > 0) {
            float pitch = MathUtils.random(.4f) + .42f;
            System.out.println("PITCH: " + pitch);
            sound_player.playSound(SoundPlayer.BUMP_SOUND, .01f, pitch);
            bumps--;
        }

        if (!dead) {
            cleanUp();
            updateSunSound();
            background.update();
            updateLocators(mngr.getSpriteBatch());
        }

    }

}

From source file:org.box2d.r3.gdx.GDXBox2DDebugRenderer.java

License:Apache License

private void drawJoint(final Joint joint) {
    final Body bodyA = joint.getBodyA();
    final Body bodyB = joint.getBodyB();
    final Transform xf1 = bodyA.getTransform();
    final Transform xf2 = bodyB.getTransform();

    final Vector2 x1 = xf1.getPosition();
    final Vector2 x2 = xf2.getPosition();
    final Vector2 p1 = joint.getAnchorA();
    final Vector2 p2 = joint.getAnchorB();

    if (joint.getType() == JointType.DistanceJoint) {
        this.drawSegment(p1, p2, this.JOINT_COLOR);
    } else if (joint.getType() == JointType.PulleyJoint) {
        final PulleyJoint pulley = (PulleyJoint) joint;
        final Vector2 s1 = pulley.getGroundAnchorA();
        final Vector2 s2 = pulley.getGroundAnchorB();
        this.drawSegment(s1, p1, this.JOINT_COLOR);
        this.drawSegment(s2, p2, this.JOINT_COLOR);
        this.drawSegment(s1, s2, this.JOINT_COLOR);
    } else if (joint.getType() == JointType.MouseJoint) {
        this.drawSegment(joint.getAnchorA(), joint.getAnchorB(), this.JOINT_COLOR);
    } else {/*www. j a v  a2  s. c  o  m*/
        this.drawSegment(x1, p1, this.JOINT_COLOR);
        this.drawSegment(p1, p2, this.JOINT_COLOR);
        this.drawSegment(x2, p2, this.JOINT_COLOR);
    }
}