private void createPhysics(final Camera camera, PhysicsWorld physicsWorld) { body = PhysicsFactory.createBoxBody( physicsWorld, this, BodyType.DynamicBody, PhysicsFactory.createFixtureDef(0, 0, 0)); body.setUserData("player"); body.setFixedRotation(true); physicsWorld.registerPhysicsConnector( new PhysicsConnector(this, body, true, false) { @Override public void onUpdate(float pSecondsElapsed) { super.onUpdate(pSecondsElapsed); camera.onUpdate(0.1f); if (getY() <= 0) { onDie(); } if (canRun) { body.setLinearVelocity(new Vector2(5, body.getLinearVelocity().y)); } } }); }
/** * Detaches this entity from the scene and disposes its sprite. Unregisters it from the physics * simulation and destroys its body. */ public void destroySelf() { acquireEngineLock(); unregister(); bodySpriteConnector.getShape().dispose(); physicsWorld.destroyBody(bodySpriteConnector.getBody()); bodySpriteConnector = null; releaseEngineLock(); }
public Puck( final float pX, final float pY, final TextureRegion pTextureRegion, final VertexBufferObjectManager pVertexBufferObjectManager, PhysicsWorld physicsWorld) { super(pX, pY, pTextureRegion, pVertexBufferObjectManager); fixtureDef.filter.categoryBits = NightHockeyActivity.CATEGORY_PUCK; fixtureDef.filter.maskBits = NightHockeyActivity.CATEGORY_WALL; body = PhysicsFactory.createCircleBody(physicsWorld, this, BodyType.DynamicBody, fixtureDef); body.setLinearDamping(0.3f); body.setAngularDamping(0.3f); body.setUserData(this); setAlpha(0.2f); physicsWorld.registerPhysicsConnector(new PhysicsConnector(this, body, true, true)); startPosition = new Vector2(body.getPosition()); }
private void unregister() { engine.getScene().detachChild(bodySpriteConnector.getShape()); engine.getScene().unregisterUpdateHandler(this); physicsWorld.unregisterPhysicsConnector(bodySpriteConnector); }
/** Attaches this entity to the scene and registers it to the physics simulation. */ public void registerSelf() { engine.getScene().attachChild(bodySpriteConnector.getShape()); engine.getScene().registerUpdateHandler(this); physicsWorld.registerPhysicsConnector(bodySpriteConnector); }
public BLevel4() { setBackground(new Background(0, 0, 0)); setOnSceneTouchListener(this); activity = World2Activity.getSharedInstance(); Camera mCamera = activity.mCamera; W1LSMenu.bPhysicsWorld = new PhysicsWorld(new Vector2(0, SensorManager.GRAVITY_THE_ISLAND), false); mPhysicsWorld = W1LSMenu.bPhysicsWorld; menu = (activity.createMenuScene()); Sprite bg = new Sprite(0, 0, activity.menuBgTexture, activity.getVertexBufferObjectManager()); setBackground(new SpriteBackground(bg)); // PhysicsWorld bPhysicsWorld = new PhysicsWorld(new Vector2(0, // SensorManager.GRAVITY_THE_ISLAND), false); final VertexBufferObjectManager vertexBufferObjectManager = activity.getVertexBufferObjectManager(); final Rectangle ground = new Rectangle(0, mCamera.getHeight() - 2, mCamera.getWidth(), 2, vertexBufferObjectManager); final Rectangle roof = new Rectangle(0, 0, mCamera.getWidth(), 2, vertexBufferObjectManager); final Rectangle left = new Rectangle(0, 0, 2, mCamera.getHeight(), vertexBufferObjectManager); final Rectangle right = new Rectangle(mCamera.getWidth() - 2, 0, 2, mCamera.getHeight(), vertexBufferObjectManager); final Rectangle reset = new Rectangle(0, 0, 200, 20, vertexBufferObjectManager); ground.setColor(Color.RED); roof.setColor(Color.RED); right.setColor(Color.RED); // final FixtureDef wallFixtureDef = PhysicsFactory.createFixtureDef(0, 0.5f, 0.5f); Body Ground = PhysicsFactory.createBoxBody(mPhysicsWorld, ground, BodyType.StaticBody, wallFixtureDef); Body Roof = PhysicsFactory.createBoxBody(mPhysicsWorld, roof, BodyType.StaticBody, wallFixtureDef); Body Left = PhysicsFactory.createBoxBody(mPhysicsWorld, left, BodyType.StaticBody, wallFixtureDef); Body Right = PhysicsFactory.createBoxBody(mPhysicsWorld, right, BodyType.StaticBody, wallFixtureDef); Body Reset = PhysicsFactory.createBoxBody(mPhysicsWorld, reset, BodyType.StaticBody, wallFixtureDef); Ground.setUserData("ground"); Roof.setUserData("ground"); Left.setUserData("wall"); Right.setUserData("ground"); Reset.setUserData("tw"); attachChild(ground); attachChild(roof); attachChild(left); attachChild(right); activity.menu = 3; x = 3; final DelayModifier dMod = new DelayModifier( 2, new IEntityModifierListener() { @Override public void onModifierStarted(IModifier arg0, IEntity arg1) {} public void onModifierFinished(IModifier arg0, IEntity arg1) { destroy(0); } }); final Text elapsedText = new Text( 600, 10, activity.mFont, "Score:0123456789", activity.getVertexBufferObjectManager()); registerUpdateHandler( new TimerHandler( 1 / 10.0f, true, new ITimerCallback() { @Override public void onTimePassed(final TimerHandler pTimerHandler) { score = (score - Math.round(activity.mCurrentScene.getSecondsElapsedTotal())); elapsedText.setText("Time :" + score); } })); attachChild(elapsedText); final Rectangle bL = new Rectangle(350, 365, 50, 20, vertexBufferObjectManager); final Rectangle bB = new Rectangle(325, 355, 50, 10, vertexBufferObjectManager); final Rectangle bR = new Rectangle(375, 355, 50, 10, vertexBufferObjectManager); final Rectangle finish = new Rectangle(350, 360, 50, 20, vertexBufferObjectManager); bR.setRotation(90); bB.setRotation(90); final Rectangle gate = new Rectangle(325, 330, 100, 10, vertexBufferObjectManager); // gate.setRotation(90); final Body Gate = PhysicsFactory.createBoxBody(mPhysicsWorld, gate, BodyType.StaticBody, wallFixtureDef); Gate.setUserData("gate"); gate.setColor(Color.GREEN); attachChild(gate); final Rectangle power = new Rectangle(650, 250, 15, 15, vertexBufferObjectManager); final Body Power = PhysicsFactory.createBoxBody(mPhysicsWorld, power, BodyType.StaticBody, wallFixtureDef); power.setColor(Color.BLUE); Power.setUserData("power"); attachChild(power); one = new Rectangle(765, 290, 25, 38, vertexBufferObjectManager); two = new Rectangle(765, 330, 25, 38, vertexBufferObjectManager); three = new Rectangle(765, 370, 25, 38, vertexBufferObjectManager); four = new Rectangle(765, 410, 25, 38, vertexBufferObjectManager); five = new Rectangle(765, 445, 25, 38, vertexBufferObjectManager); one.setColor(Color.GREEN); two.setColor(Color.GREEN); three.setColor(Color.YELLOW); four.setColor(Color.YELLOW); five.setColor(Color.RED); attachChild(one); attachChild(two); attachChild(three); attachChild(four); attachChild(five); Body bod = PhysicsFactory.createBoxBody(mPhysicsWorld, bL, BodyType.StaticBody, wallFixtureDef); Body lbod = PhysicsFactory.createBoxBody(mPhysicsWorld, bR, BodyType.StaticBody, wallFixtureDef); Body rbod = PhysicsFactory.createBoxBody(mPhysicsWorld, bB, BodyType.StaticBody, wallFixtureDef); Body Finish = PhysicsFactory.createBoxBody(mPhysicsWorld, finish, BodyType.StaticBody, wallFixtureDef); Rectangle help = new Rectangle(0, 150, 300, 10, vertexBufferObjectManager); Body Help = PhysicsFactory.createBoxBody(mPhysicsWorld, help, BodyType.StaticBody, wallFixtureDef); Rectangle block = new Rectangle(290, 100, 250, 10, vertexBufferObjectManager); block.setRotation(-25); Body Block = PhysicsFactory.createBoxBody(mPhysicsWorld, block, BodyType.StaticBody, wallFixtureDef); Block.setUserData("block"); bod.setUserData("body"); rbod.setUserData("body"); lbod.setUserData("body"); Finish.setUserData("finish"); Help.setUserData("Help"); bL.setColor(Color.WHITE); block.setColor(Color.WHITE); bR.setColor(Color.WHITE); bB.setColor(Color.WHITE); help.setColor(Color.WHITE); finish.setColor(0, 0, 1); finish.setVisible(false); attachChild(block); attachChild(bL); attachChild(bR); attachChild(bB); attachChild(help); attachChild(finish); // final ButtonSprite button = new ButtonSprite(5, 5, activity.mMenuResetTextureRegion, // vertexBufferObjectManager); // attachChild(button); // FixtureDef objectFixtureDef = PhysicsFactory.createFixtureDef(0.0f, // 0.0f, 0.0f); FixtureDef FIXTURE_DEF2 = PhysicsFactory.createFixtureDef(1, .9f, 0.5f); final int blue = activity.faceSelected(1); if (blue == 1) face = new AnimatedSprite(05, 50, activity.redFace, activity.getVertexBufferObjectManager()); else if (blue == 2) face = new AnimatedSprite(05, 50, activity.blueFace, activity.getVertexBufferObjectManager()); else if (blue == 3) face = new AnimatedSprite(05, 50, activity.yellowFace, activity.getVertexBufferObjectManager()); else if (blue == 4) { activity.grav = 5; face = new AnimatedSprite(05, 50, activity.hairFace, activity.getVertexBufferObjectManager()); } else if (blue == 5) face = new AnimatedSprite(05, 50, activity.djFace, activity.getVertexBufferObjectManager()); else if (blue == 6) { activity.grav = 2; face = new AnimatedSprite(05, 50, activity.jetFace, activity.getVertexBufferObjectManager()); } else if (blue == 7) face = new AnimatedSprite(05, 50, activity.slowFace, activity.getVertexBufferObjectManager()); else if (blue == 8) face = new AnimatedSprite(05, 50, activity.fastFace, activity.getVertexBufferObjectManager()); else face = new AnimatedSprite(05, 50, activity.redFace, activity.getVertexBufferObjectManager()); if (blue == 5) body = PhysicsFactory.createCircleBody(mPhysicsWorld, face, BodyType.DynamicBody, FIXTURE_DEF2); else if (blue == 6) body = PhysicsFactory.createBoxBody(mPhysicsWorld, face, BodyType.DynamicBody, FIXTURE_DEF); else body = PhysicsFactory.createCircleBody(mPhysicsWorld, face, BodyType.DynamicBody, FIXTURE_DEF); body.setUserData("face"); face.animate(200); attachChild(face); mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(face, body, true, true)); registerUpdateHandler(mPhysicsWorld); Rectangle pauseBtn = new Rectangle(0, 0, 130, 130, activity.getVertexBufferObjectManager()) { @Override public boolean onAreaTouched( TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) { if (pSceneTouchEvent.getAction() == MotionEvent.ACTION_UP) { activity.menu = 4; setChildScene(menu, false, true, true); } return true; } }; pauseBtn.setVisible(false); // pauseBtn.setColor(0,0,1); attachChild(pauseBtn); registerTouchArea(pauseBtn); final Text resetText = new Text( 10, 10, activity.mFont, "Pause", new TextOptions(HorizontalAlign.CENTER), vertexBufferObjectManager); attachChild(resetText); mPhysicsWorld.setContactListener( new ContactListener() { @Override public void beginContact(final Contact contact) { final Fixture A = contact.getFixtureA(); final Fixture B = contact.getFixtureB(); final Body bodyA = A.getBody(); final Body bodyB = B.getBody(); String abe = bodyA.getUserData().toString(); String be = bodyB.getUserData().toString(); if (abe == "power" || be == "power") { power.setVisible(false); Power.setActive(false); Gate.setActive(false); gate.setColor(Color.TRANSPARENT); } else if (abe == "ground" || be == "ground") { activity.gameToast("You ran into a fire wall"); destroy(1); } else if (abe == "finish" || be == "finish") { bB.setColor(0, 0, 1); bL.setColor(0, 0, 1); bR.setColor(0, 0, 1); registerEntityModifier(dMod); } else if (abe == "ground" || be == "ground") { activity.gameToast("You fell into a pit try again"); destroy(1); } } @Override public void endContact(final Contact pContact) { /* Do something... */ } @Override public void preSolve(Contact contact, Manifold oldManifold) {} @Override public void postSolve(Contact contact, ContactImpulse impulse) { // TODO Auto-generated method stub } }); }
public Level21() { setBackground(new Background(0, 0, 0)); setOnSceneTouchListener(this); activity = World1Activity.getSharedInstance(); Camera mCamera = activity.mCamera; Level1.mPhysicsWorld = new PhysicsWorld(new Vector2(0, SensorManager.GRAVITY_EARTH), false); mPhysicsWorld = Level1.mPhysicsWorld; Sprite bg = new Sprite(0, 0, activity.menuBgTexture6, activity.getVertexBufferObjectManager()); setBackground(new SpriteBackground(bg)); // activity.gameToast("The bugs have morphed and can travel through lines"); // PhysicsWorld bPhysicsWorld = new PhysicsWorld(new Vector2(0, // SensorManager.GRAVITY_THE_ISLAND), false); final VertexBufferObjectManager vertexBufferObjectManager = activity.getVertexBufferObjectManager(); final Rectangle ground = new Rectangle(0, mCamera.getHeight() - 2, mCamera.getWidth(), 2, vertexBufferObjectManager); final Rectangle roof = new Rectangle(0, 0, mCamera.getWidth(), 2, vertexBufferObjectManager); final Rectangle left = new Rectangle(0, 0, 2, mCamera.getHeight(), vertexBufferObjectManager); final Rectangle right = new Rectangle(mCamera.getWidth() - 2, 0, 2, mCamera.getHeight(), vertexBufferObjectManager); final Rectangle reset = new Rectangle(0, 0, 200, 20, vertexBufferObjectManager); ground.setColor(0, 255, 255); // right.setColor(Color.RED); // final FixtureDef wallFixtureDef = PhysicsFactory.createFixtureDef(0, 0.5f, 0.5f, false, // CATEGORYBIT_WALL, MASKBITS_WALL, (short)0); Body Ground = PhysicsFactory.createBoxBody(mPhysicsWorld, ground, BodyType.StaticBody, WALL_FIXTURE_DEF); Body Roof = PhysicsFactory.createBoxBody(mPhysicsWorld, roof, BodyType.StaticBody, WALL_FIXTURE_DEF); Body Left = PhysicsFactory.createBoxBody(mPhysicsWorld, left, BodyType.StaticBody, WALL_FIXTURE_DEF); Body Right = PhysicsFactory.createBoxBody(mPhysicsWorld, right, BodyType.StaticBody, WALL_FIXTURE_DEF); Body Reset = PhysicsFactory.createBoxBody(mPhysicsWorld, reset, BodyType.StaticBody, WALL_FIXTURE_DEF); Ground.setUserData("ground"); Roof.setUserData("roof"); Left.setUserData("left"); Right.setUserData("right"); Reset.setUserData("tw"); attachChild(ground); attachChild(roof); attachChild(left); attachChild(right); Rectangle help = new Rectangle(50, 220, 250, 10, vertexBufferObjectManager); Body Help = PhysicsFactory.createBoxBody(mPhysicsWorld, help, BodyType.StaticBody, WALL_FIXTURE_DEF); final Rectangle help2 = new Rectangle(0, 220, 50, 10, vertexBufferObjectManager); final Body Help2 = PhysicsFactory.createBoxBody(mPhysicsWorld, help2, BodyType.StaticBody, WALL_FIXTURE_DEF); Help2.setUserData("help"); help2.setColor(Color.WHITE); attachChild(help2); Rectangle block = new Rectangle(180, 220, 250, 10, vertexBufferObjectManager); block.setRotation(90); Body Block = PhysicsFactory.createBoxBody(mPhysicsWorld, block, BodyType.StaticBody, WALL_FIXTURE_DEF); Block.setUserData("block"); Help.setUserData("help"); block.setColor(Color.WHITE); help.setColor(Color.WHITE); attachChild(help); attachChild(block); // final FixtureDef objectFixtureDef2 = PhysicsFactory.createFixtureDef(10, 0.2f, 0.5f,false, // CATEGORYBIT_WALL, MASKBITS_WALL, (short)0); final Text elapsedText = new Text( 600, 10, activity.mFont3, "Score:0123456789", activity.getVertexBufferObjectManager()); registerUpdateHandler( new TimerHandler( 1 / 10f, true, new ITimerCallback() { @Override public void onTimePassed(final TimerHandler pTimerHandler) { if (score > 2501) { score = (score - Math.round(activity.mCurrentScene.getSecondsElapsedTotal())); elapsedText.setText("Score:" + score); } else { score = 2500; elapsedText.setText("Score:" + score); } } })); attachChild(elapsedText); final DelayModifier dMod = new DelayModifier( 2, new IEntityModifierListener() { @Override public void onModifierStarted(IModifier arg0, IEntity arg1) {} public void onModifierFinished(IModifier arg0, IEntity arg1) { destroy(0); } }); final Rectangle bL = new Rectangle(150, 365, 50, 20, vertexBufferObjectManager); final Rectangle bB = new Rectangle(125, 355, 50, 10, vertexBufferObjectManager); final Rectangle bR = new Rectangle(175, 355, 50, 10, vertexBufferObjectManager); final Rectangle finish = new Rectangle(150, 360, 50, 20, vertexBufferObjectManager); bR.setRotation(90); bB.setRotation(90); one = new Rectangle(765, 290, 25, 35, vertexBufferObjectManager); two = new Rectangle(765, 330, 25, 35, vertexBufferObjectManager); three = new Rectangle(765, 370, 25, 35, vertexBufferObjectManager); four = new Rectangle(765, 410, 25, 35, vertexBufferObjectManager); five = new Rectangle(765, 450, 25, 35, vertexBufferObjectManager); one.setColor(Color.GREEN); two.setColor(Color.GREEN); three.setColor(Color.YELLOW); four.setColor(Color.YELLOW); five.setColor(Color.RED); attachChild(one); attachChild(two); attachChild(three); attachChild(four); attachChild(five); Rectangle laser = new Rectangle(350, 200, 20, 20, vertexBufferObjectManager); laser.setColor(Color.RED); attachChild(laser); final Line lase = new Line(350, 205, 805, 200, 5, vertexBufferObjectManager); final Body Lase = PhysicsFactory.createLineBody(mPhysicsWorld, lase, WALL_FIXTURE_DEF); Lase.setUserData("laser"); lase.setColor(Color.RED); lase.setVisible(false); Lase.setActive(false); attachChild(lase); registerUpdateHandler( new IUpdateHandler() { @Override public void onUpdate(float pSecondsElapsed) { x = x + 1; if (x == 50) { lase.setVisible(true); Lase.setActive(true); } else if (x == 100) { lase.setVisible(false); Lase.setActive(false); x = 0; } } @Override public void reset() { // TODO Auto-generated method stub } }); final Rectangle powerup = new Rectangle(665, 050, 15, 15, vertexBufferObjectManager); powerup.setColor(Color.RED); final Body power = PhysicsFactory.createBoxBody(mPhysicsWorld, powerup, BodyType.StaticBody, WALL_FIXTURE_DEF); powerup.setVisible(true); power.setActive(true); Body bod = PhysicsFactory.createBoxBody(mPhysicsWorld, bL, BodyType.StaticBody, WALL_FIXTURE_DEF); Body lbod = PhysicsFactory.createBoxBody(mPhysicsWorld, bR, BodyType.StaticBody, WALL_FIXTURE_DEF); Body rbod = PhysicsFactory.createBoxBody(mPhysicsWorld, bB, BodyType.StaticBody, WALL_FIXTURE_DEF); Body Finish = PhysicsFactory.createBoxBody( mPhysicsWorld, finish, BodyType.StaticBody, CIRCLE_FIXTURE_DEF); // Rectangle help = new Rectangle(0, 220, 300, 10, vertexBufferObjectManager); // Body Help = PhysicsFactory.createBoxBody(mPhysicsWorld, help, BodyType.StaticBody, // wallFixtureDef); // Rectangle block = new Rectangle(180, 220, 250, 10, vertexBufferObjectManager); // block.setRotation(90); // Body Block = PhysicsFactory.createBoxBody(mPhysicsWorld, block, BodyType.StaticBody, // wallFixtureDef); // Block.setUserData("block"); bod.setUserData("body"); rbod.setUserData("body"); lbod.setUserData("body"); Finish.setUserData("finish"); power.setUserData("power"); // Help.setUserData("Help"); bL.setColor(Color.WHITE); // block.setColor(255, 0, 0); bR.setColor(Color.WHITE); bB.setColor(Color.WHITE); // help.setColor(255, 0, 0); finish.setColor(0, 0, 1); finish.setVisible(false); // attachChild(block); attachChild(bL); attachChild(bR); attachChild(bB); // attachChild(help); attachChild(finish); attachChild(powerup); // centerText = new Text(320, 40, activity.mFont, "IMPORTANT!!! Keep an eye \n out for powerups // \n to help you through \n the level \n (touch anywhere to make \n this message dissapear)", // new TextOptions(HorizontalAlign.CENTER), vertexBufferObjectManager); // attachChild(centerText); // final ButtonSprite button = new ButtonSprite(5, 5, activity.mMenuResetTextureRegion, // vertexBufferObjectManager); // attachChild(button); final int blue = activity.faceSelected(1); if (blue == 1) face = new AnimatedSprite(05, 150, activity.redFace, activity.getVertexBufferObjectManager()); else if (blue == 2) face = new AnimatedSprite(05, 150, activity.blueFace, activity.getVertexBufferObjectManager()); else if (blue == 3) face = new AnimatedSprite(05, 150, activity.yellowFace, activity.getVertexBufferObjectManager()); else if (blue == 4) face = new AnimatedSprite(05, 150, activity.hairFace, activity.getVertexBufferObjectManager()); else if (blue == 5) face = new AnimatedSprite(05, 150, activity.djFace, activity.getVertexBufferObjectManager()); else if (blue == 6) face = new AnimatedSprite(05, 150, activity.jetFace, activity.getVertexBufferObjectManager()); else if (blue == 7) face = new AnimatedSprite(05, 150, activity.slowFace, activity.getVertexBufferObjectManager()); else if (blue == 8) face = new AnimatedSprite(05, 150, activity.fastFace, activity.getVertexBufferObjectManager()); else face = new AnimatedSprite(05, 150, activity.redFace, activity.getVertexBufferObjectManager()); body = PhysicsFactory.createCircleBody( mPhysicsWorld, face, BodyType.DynamicBody, FACE_FIXTURE_DEF); body.setUserData("face"); face.animate(200); attachChild(face); mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(face, body, true, true)); registerUpdateHandler(mPhysicsWorld); Random r = new Random(); int i = r.nextInt(4 - 1) + 1; if (i == 1) { enemy = new Sprite(400, 200, activity.bug2, activity.getVertexBufferObjectManager()); enemy2 = new Sprite(400, 200, activity.bug3, activity.getVertexBufferObjectManager()); enemy3 = new Sprite(400, 200, activity.bug1, activity.getVertexBufferObjectManager()); } else if (i == 2) { enemy = new Sprite(400, 200, activity.bug2, activity.getVertexBufferObjectManager()); enemy2 = new Sprite(400, 200, activity.bug1, activity.getVertexBufferObjectManager()); enemy3 = new Sprite(400, 200, activity.bug2, activity.getVertexBufferObjectManager()); } else if (i == 3) { enemy = new Sprite(400, 200, activity.bug3, activity.getVertexBufferObjectManager()); enemy2 = new Sprite(400, 200, activity.bug2, activity.getVertexBufferObjectManager()); enemy3 = new Sprite(400, 200, activity.bug3, activity.getVertexBufferObjectManager()); } else enemy = new Sprite(400, 200, activity.bug1, activity.getVertexBufferObjectManager()); enemy2 = new Sprite(400, 200, activity.bug2, activity.getVertexBufferObjectManager()); enemy3 = new Sprite(400, 200, activity.bug3, activity.getVertexBufferObjectManager()); // final Rectangle enemy = new Rectangle(600,400, 15, 15, // activity.getVertexBufferObjectManager()); Enemy = PhysicsFactory.createBoxBody( mPhysicsWorld, enemy, BodyType.DynamicBody, CIRCLE_FIXTURE_DEF); Enemy.setUserData("enemy"); attachChild(enemy); mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(enemy, Enemy, true, true)); // final Rectangle enemy2 = new Rectangle(500,400, 15, 15, // activity.getVertexBufferObjectManager()); Enemy2 = PhysicsFactory.createBoxBody( mPhysicsWorld, enemy2, BodyType.DynamicBody, CIRCLE_FIXTURE_DEF); Enemy2.setUserData("enemy"); attachChild(enemy2); mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(enemy2, Enemy2, true, true)); // final Rectangle enemy3 = new Rectangle(400,400, 15, 15, // activity.getVertexBufferObjectManager()); Enemy3 = PhysicsFactory.createBoxBody( mPhysicsWorld, enemy3, BodyType.DynamicBody, CIRCLE_FIXTURE_DEF); Enemy3.setUserData("enemy"); attachChild(enemy3); mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(enemy3, Enemy3, true, true)); // Enemy.setLinearVelocity(10, -10); /*final AnimatedSprite windArea = new AnimatedSprite(200, 0, 50, 500, activity.mBoxFaceTextureRegion, activity.getVertexBufferObjectManager()) { @Override protected void onManagedUpdate(float pSecondsElapsed) { if (face.collidesWith(this)) { body.applyLinearImpulse(new Vector2(0, -10f), body.getWorldCenter()); } }; }; // windArea.setVisible(false); attachChild(windArea); */ Rectangle pauseBtn = new Rectangle(10, 10, 100, 100, activity.getVertexBufferObjectManager()) { @Override public boolean onAreaTouched( TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) { if (pSceneTouchEvent.getAction() == MotionEvent.ACTION_UP) { Scene menu = (activity.createMenuScene()); activity.menu = 21; setChildScene(menu, false, true, true); } return true; } }; pauseBtn.setVisible(false); // pauseBtn.setColor(0,0,1); attachChild(pauseBtn); registerTouchArea(pauseBtn); final Text resetText = new Text( 10, 10, activity.mFont3, "Pause", new TextOptions(HorizontalAlign.CENTER), vertexBufferObjectManager); attachChild(resetText); mPhysicsWorld.setContactListener( new ContactListener() { @Override public void beginContact(final Contact contact) { final Fixture A = contact.getFixtureA(); final Fixture B = contact.getFixtureB(); final Body bodyA = A.getBody(); final Body bodyB = B.getBody(); String abe = bodyA.getUserData().toString(); String be = bodyB.getUserData().toString(); if (abe == "left" || be == "left") { Enemy.applyLinearImpulse(new Vector2(1, 0.5f), body.getWorldCenter()); Enemy2.applyLinearImpulse(new Vector2(1, 0.5f), body.getWorldCenter()); Enemy3.applyLinearImpulse(new Vector2(1, 0.5f), body.getWorldCenter()); } else if (abe == "power" && be != "enemy") { l = -5; activity.gameToast("Nice super shield active. Resetting line...."); linesDrawn = 0; rectangle(linesDrawn); powerup.setVisible(false); power.setActive(false); help2.setVisible(false); Help2.setActive(false); } if (abe == "finish" && be == "face") { bB.setColor(0, 0, 1); bL.setColor(0, 0, 1); bR.setColor(0, 0, 1); // lase.setVisible(false); // Lase.setActive(false); // x = 500; registerEntityModifier(dMod); } if (abe == "laser" && be == "face") { if (l >= 0) { l = l + 1; activity.gameToast("Shield only blocks one laser hit-Hit #" + l); if (l == 2) destroy(1); } else if (l < 0) { activity.gameToast("Super Shield active"); l = l + 1; } } else if (abe == "roof" || be == "roof") { Enemy.applyLinearImpulse(new Vector2(0.5f, 1f), body.getWorldCenter()); Enemy2.applyLinearImpulse(new Vector2(0.5f, 1f), body.getWorldCenter()); Enemy3.applyLinearImpulse(new Vector2(0.5f, 1f), body.getWorldCenter()); } else if (abe == "right" || be == "right") { Enemy.applyLinearImpulse(new Vector2(-1, 0.5f), body.getWorldCenter()); Enemy2.applyLinearImpulse(new Vector2(-1, 0.5f), body.getWorldCenter()); Enemy3.applyLinearImpulse(new Vector2(-1, 0.5f), body.getWorldCenter()); } else if (abe == "ground" || be == "ground") { Enemy.applyLinearImpulse(new Vector2(0.5f, -2f), body.getWorldCenter()); Enemy2.applyLinearImpulse(new Vector2(0.5f, -2f), body.getWorldCenter()); Enemy3.applyLinearImpulse(new Vector2(0.5f, -2f), body.getWorldCenter()); } else if (abe == "enemy" && be == "face") { if (l >= 0) { l = l + 1; activity.gameToast("Hit #" + l); if (l == 3) destroy(1); } else if (l < 0) { if (dead == 0) { enemy.setVisible(false); Enemy.setActive(false); dead = dead + 1; l = l + 1; activity.gameToast("Enemy eleminated"); } else if (dead == 1) { enemy2.setVisible(false); Enemy2.setActive(false); l = l + 1; dead = dead + 1; activity.gameToast("Enemy 2 eleminated"); } else if (l == -3) { enemy3.setVisible(false); Enemy3.setActive(false); l = l + 1; dead = dead + 1; activity.gameToast("Enemy 3 eleminated"); } else { l = l + 1; } } } } @Override public void endContact(final Contact pContact) {} @Override public void preSolve(Contact contact, Manifold oldManifold) {} @Override public void postSolve(Contact contact, ContactImpulse impulse) {} }); }
private void createPhysics(final Camera camera, PhysicsWorld physicsWorld) { body = PhysicsFactory.createBoxBody( physicsWorld, this, BodyType.DynamicBody, PhysicsFactory.createFixtureDef(0, 0, 0)); as = new AnimatedSprite( mHeight, mHeight, ResourcesManager.getInstance().player_region.deepCopy(), MainGameEngineActivity.getSharedInstance() .getSharedInstance() .getVertexBufferObjectManager()); body.setUserData(as); body.setFixedRotation(true); physicsWorld.registerPhysicsConnector( new PhysicsConnector(this, body, true, false) { @Override public void onUpdate(float pSecondsElapsed) { super.onUpdate(pSecondsElapsed); camera.onUpdate(0.1f); if (jetfireCalled == false) { jetfire(); jetfireCalled = true; jumpTimer = fuelLevel; } if (getY() <= 0) { onDie(); } if (jumping) { jumpTimer--; if (jumpTimer >= 1) { GameScene scene = (GameScene) MainGameEngineActivity.getSharedInstance().mCurrentScene; scene.fuelText.setText(("Fuel: " + jumpTimer)); if (jumpTimer > fuelLevel / 2) { scene.fuelText.setColor(Color.rgb(0, 255, 0)); } else if (jumpTimer > fuelLevel / 3 && jumpTimer < fuelLevel / 2) { scene.fuelText.setColor(Color.rgb(255, 255, 0)); } else { scene.fuelText.setColor(Color.rgb(255, 0, 0)); } body.setLinearVelocity(new Vector2(body.getLinearVelocity().x, 4)); pe.setCenter(getX(), getY()); } else if (jumpTimer <= 0) { GameScene scene = (GameScene) MainGameEngineActivity.getSharedInstance().mCurrentScene; scene.fuelText.setText(("Fuel:Charging")); jumpRecharge--; pe.setCenter(-1000, -1000); } if (jumpRecharge <= 0 && jumpTimer <= 0) { pe.setCenter(-1000, -1000); jumpRecharge = 75; jumpTimer = fuelLevel; } } if (right) { body.setLinearVelocity(new Vector2(5, body.getLinearVelocity().y)); } if (left) { body.setLinearVelocity(new Vector2(-5, body.getLinearVelocity().y)); } if (stop) { body.setLinearVelocity(new Vector2(0, body.getLinearVelocity().y)); } } }); }
protected void drawScene() { Log.i(TAG, "----------drawScene------------------------------"); this.mPhysicsWorld = new PhysicsWorld(new Vector2(0, 0), false); this.registerUpdateHandler(mPhysicsWorld); this.mPhysicsWorld.setContactListener(contactListener); final Sprite spriteBackGround = new Sprite( 960 / 2 - mBackGroundTextureRegion.getWidth() / 2, 0, mBackGroundTextureRegion, mVertexBufferObjectManager); this.attachChild(spriteBackGround); for (int i = 0; i < mTabSprite.length; i++) { mTabSprite[i] = new Sprite( 960 / 2 - 1150 / 2, 89.5f, tpTab[i].getTexturePackTextureRegionLibrary().get(0), mVertexBufferObjectManager); this.attachChild(mTabSprite[i]); mTabSprite[i].setVisible(false); } mTabSprite[0].setVisible(true); final Body body = this.physicsEditorShapeLibrary.createBody( "a3_5_1_iphone_dai", mTabSprite[0], this.mPhysicsWorld); this.mPhysicsWorld.registerPhysicsConnector( new PhysicsConnector(mTabSprite[0], body, true, true)); mTabSprite[0].setUserData(body); // Cubic Choose mCubicChooseSpite[CUBIC_YELLOW] = new Sprite( 279, 70, tpOne .getTexturePackTextureRegionLibrary() .get(Vol3OsyougatsuResource.packer_parta_1.A3_6_4_IPHONE_KOMA_ID), mVertexBufferObjectManager); this.attachChild(mCubicChooseSpite[CUBIC_YELLOW]); mCubicChooseSpite[CUBIC_GREEN] = new Sprite( 200, 90f, tpOne .getTexturePackTextureRegionLibrary() .get(Vol3OsyougatsuResource.packer_parta_1.A3_6_3_IPHONE_KOMA_ID), mVertexBufferObjectManager); this.attachChild(mCubicChooseSpite[CUBIC_GREEN]); mCubicChooseSpite[CUBIC_BLUE] = new Sprite( 110, 107, tpOne .getTexturePackTextureRegionLibrary() .get(Vol3OsyougatsuResource.packer_parta_1.A3_6_2_IPHONE_KOMA_ID), mVertexBufferObjectManager); this.attachChild(mCubicChooseSpite[CUBIC_BLUE]); mCubicChooseSpite[CUBIC_ORANGE] = new Sprite( 22f, 135, tpOne .getTexturePackTextureRegionLibrary() .get(Vol3OsyougatsuResource.packer_parta_1.A3_6_1_IPHONE_KOMA_ID), mVertexBufferObjectManager); this.attachChild(mCubicChooseSpite[CUBIC_ORANGE]); cubicTouch = new CubicTouch(0, 0, 960, 640, null); this.attachChild(cubicTouch); this.registerTouchArea(cubicTouch); for (int i = CUBIC_ORANGE; i <= CUBIC_YELLOW; i++) { final TextureRegion iOTextureRegion = new TextureRegion( bitmapTexture[i % 2], 2, 2, mCubicStartTiledTexture[i].getWidth(), mCubicStartTiledTexture[i].getHeight()); mCubicEntity[i] = new CubicEntity( 0, 100, i, mCubicStartTiledTexture[i], mCubicTurnTiledTexture[i], mCubicStopTiledTexture[i], mCubicTurnOptionTiledTexture, iOTextureRegion); this.attachChild(mCubicEntity[i]); mCubicEntity[i].setVisible(false); // Body final Body bodyCubic = this.physicsEditorShapeLibrary.createBody( CUBIC_BODYNAME[i], mCubicEntity[i], this.mPhysicsWorld); bodyCubic.setFixedRotation(true); bodyCubic.setActive(false); mCubicEntity[i].setUserData(bodyCubic); mPhysicsWorld.registerPhysicsConnector( new PhysicsConnector(mCubicEntity[i], bodyCubic, true, true)); } final SceneTouch sceneTouch = new SceneTouch(0, 0, 960, 640, null); this.attachChild(sceneTouch); this.registerTouchArea(sceneTouch); mSuzuAniSprite = new AnimatedSprite( 960 / 2 - mSuzuTiledTexTure.getWidth() / 2, -19, mSuzuTiledTexTure, mVertexBufferObjectManager); this.attachChild(mSuzuAniSprite); mShishiAniSprite = new AnimatedSprite(960, 59.5f, mShishiTiledTexTure, mVertexBufferObjectManager); this.attachChild(mShishiAniSprite); mShishiAniSprite.setVisible(false); mArrowSprite = new Sprite( 120, 133, tpThree .getTexturePackTextureRegionLibrary() .get(Vol3OsyougatsuResource.packer_parta_3.A3_8_1_IPHONE_YAJIRUSHI_ID), mVertexBufferObjectManager); this.attachChild(mArrowSprite); mArrowSprite.setVisible(false); }