package com.angrykings.castles; import com.angrykings.GameContext; import com.angrykings.PhysicalEntity; import com.angrykings.ResourceManager; import com.badlogic.gdx.physics.box2d.Body; import com.badlogic.gdx.physics.box2d.BodyDef; import com.badlogic.gdx.physics.box2d.FixtureDef; import org.andengine.entity.shape.IAreaShape; import org.andengine.entity.sprite.Sprite; import org.andengine.extension.physics.box2d.PhysicsFactory; import org.andengine.opengl.texture.region.TextureRegion; public class Wood extends PhysicalEntity { protected final TextureRegion woodTexture; protected final Sprite woodSprite; protected final Body woodBody; public final static FixtureDef FIXTURE_DEF = PhysicsFactory.createFixtureDef(0.05f, 0.2f, 0.8f); private final static float LINEAR_DAMPING = 0.1f; private final static float ANGULAR_DAMPING = 0.1f; public Wood(float x, float y) { ResourceManager rm = ResourceManager.getInstance(); this.woodTexture = rm.getWoodTexture(); GameContext gc = GameContext.getInstance(); this.woodSprite = new Sprite( x - this.woodTexture.getWidth() / 2, y - this.woodTexture.getHeight() / 2, this.woodTexture, gc.getVboManager() ); this.woodBody = PhysicsFactory.createBoxBody( gc.getPhysicsWorld(), this.woodSprite, BodyDef.BodyType.DynamicBody, Wood.FIXTURE_DEF ); this.woodBody.setLinearDamping(Wood.LINEAR_DAMPING); this.woodBody.setAngularDamping(Wood.ANGULAR_DAMPING); } @Override public Body getBody() { return woodBody; } @Override public IAreaShape getAreaShape() { return this.woodSprite; } }