本文整理汇总了Java中com.badlogic.gdx.physics.box2d.PolygonShape.setAsBox方法的典型用法代码示例。如果您正苦于以下问题:Java PolygonShape.setAsBox方法的具体用法?Java PolygonShape.setAsBox怎么用?Java PolygonShape.setAsBox使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.badlogic.gdx.physics.box2d.PolygonShape
的用法示例。
在下文中一共展示了PolygonShape.setAsBox方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: createWall
import com.badlogic.gdx.physics.box2d.PolygonShape; //导入方法依赖的package包/类
/**
* Creates a wall by constructing a rectangle whose corners are (xmin,ymin) and (xmax,ymax),
* and rotating the box counterclockwise through the given angle, with specified restitution.
*/
public static Body createWall(World world, float xmin, float ymin, float xmax, float ymax,
float angle, float restitution) {
float cx = (xmin + xmax) / 2;
float cy = (ymin + ymax) / 2;
float hx = Math.abs((xmax - xmin) / 2);
float hy = Math.abs((ymax - ymin) / 2);
PolygonShape wallshape = new PolygonShape();
// Don't set the angle here; instead call setTransform on the body below. This allows future
// calls to setTransform to adjust the rotation as expected.
wallshape.setAsBox(hx, hy, new Vector2(0f, 0f), 0f);
FixtureDef fdef = new FixtureDef();
fdef.shape = wallshape;
fdef.density = 1.0f;
if (restitution>0) fdef.restitution = restitution;
BodyDef bd = new BodyDef();
bd.position.set(cx, cy);
Body wall = world.createBody(bd);
wall.createFixture(fdef);
wall.setType(BodyDef.BodyType.StaticBody);
wall.setTransform(cx, cy, angle);
return wall;
}
示例2: WaterModel
import com.badlogic.gdx.physics.box2d.PolygonShape; //导入方法依赖的package包/类
/**
* Water Model's constructor.
* Creates a water model from the given object, into the given world.
*
* @param world The world the water model will be in.
* @param rect The rectangle to create the water model with.
*/
public WaterModel(World world, Rectangle rect) {
// Body and Fixture variables
BodyDef bdef = new BodyDef();
FixtureDef fdef = new FixtureDef();
PolygonShape shape = new PolygonShape();
bdef.type = BodyDef.BodyType.StaticBody;
bdef.position.set(PIXEL_TO_METER * (rect.getX() + rect.getWidth() / 2), PIXEL_TO_METER * (rect.getY() + rect.getHeight() / 2));
this.body = world.createBody(bdef);
shape.setAsBox((rect.getWidth() / 2) * PIXEL_TO_METER, (rect.getHeight() / 2) * PIXEL_TO_METER);
fdef.shape = shape;
fdef.filter.categoryBits = FLUID_BIT;
fdef.isSensor = true;
fdef.density = 1f;
fdef.friction = 0.1f;
fdef.restitution = 0f;
body.createFixture(fdef);
body.setUserData(new BuoyancyController(world, body.getFixtureList().first()));
}
示例3: createBody
import com.badlogic.gdx.physics.box2d.PolygonShape; //导入方法依赖的package包/类
private void createBody() {
BodyDef bodyDef = new BodyDef();
bodyDef.type = BodyType.DynamicBody;
// Set our body's starting position in the world
bodyDef.position.set(Gdx.input.getX() / 100f, camera.viewportHeight - Gdx.input.getY() / 100f);
// Create our body in the world using our body definition
Body body = world.createBody(bodyDef);
// Create a circle shape and set its radius to 6
PolygonShape square = new PolygonShape();
square.setAsBox(0.3f, 0.3f);
// Create a fixture definition to apply our shape to
FixtureDef fixtureDef = new FixtureDef();
fixtureDef.shape = square;
fixtureDef.density = 0.5f;
fixtureDef.friction = 0.5f;
fixtureDef.restitution = 0.5f;
// Create our fixture and attach it to the body
body.createFixture(fixtureDef);
square.dispose();
}
示例4: createTopTube
import com.badlogic.gdx.physics.box2d.PolygonShape; //导入方法依赖的package包/类
public static Array<Body> createTopTube(World world, float posX) {
float posY = generateTubePosition();
BodyDef bodyDef = new BodyDef();
bodyDef.type = BodyDef.BodyType.KinematicBody;
bodyDef.position.set(posX, posY);
PolygonShape shape = new PolygonShape();
shape.setAsBox(Constants.TUBE_WIDTH / 2, Constants.TUBE_HEIGHT / 2);
Body bodyTop = world.createBody(bodyDef);
bodyTop.createFixture(shape, 0f);
bodyTop.resetMassData();
shape.dispose();
bodyTop.setLinearVelocity(Constants.TUBE_SPEED, 0.0f);
Array<Body> bodies = new Array<Body>();
bodies.add(bodyTop);
bodies.add(createBottomTube(world, posX, posY));
return bodies;
}
示例5: createStick
import com.badlogic.gdx.physics.box2d.PolygonShape; //导入方法依赖的package包/类
/**
* 创建攻击夹具
*/
public void createStick() {
if (mAttackFixture != null) {
return;
}
//创建攻击传感器 stick
PolygonShape shape = new PolygonShape();
if (STATE == State.STATE_RIGHT_ATTACK) {
shape.setAsBox(45 / Constant.RATE, 5 / Constant.RATE
, new Vector2(60 / Constant.RATE, 0), 0);
} else {
shape.setAsBox(45 / Constant.RATE, 5 / Constant.RATE
, new Vector2(-60 / Constant.RATE, 0), 0);
}
FixtureDef attackFixDef = new FixtureDef();
attackFixDef.shape = shape;
attackFixDef.filter.categoryBits = Constant.PLAYER;
attackFixDef.filter.maskBits = Constant.ENEMY_DAO | Constant.BOSS;
attackFixDef.isSensor = true;
mAttackFixture = mBody.createFixture(attackFixDef);
mAttackFixture.setUserData("stick");
}
示例6: createJumpStick
import com.badlogic.gdx.physics.box2d.PolygonShape; //导入方法依赖的package包/类
/**
* 创建升龙斩攻击夹具
*/
public void createJumpStick() {
if (mJumpAtkFix != null) {
return;
}
//创建攻击传感器 stick
PolygonShape shape = new PolygonShape();
if (STATE == State.STATE_RIGHT_JUMP_ATTACK) {
shape.setAsBox(10 / Constant.RATE, 40 / Constant.RATE
, new Vector2(100 / Constant.RATE, 20 / Constant.RATE), 0);
} else {
shape.setAsBox(10 / Constant.RATE, 45 / Constant.RATE
, new Vector2(-100 / Constant.RATE, 20 / Constant.RATE), 0);
}
FixtureDef attackFixDef = new FixtureDef();
attackFixDef.shape = shape;
attackFixDef.filter.categoryBits = Constant.PLAYER;
attackFixDef.filter.maskBits = Constant.ENEMY_DAO | Constant.BOSS;
attackFixDef.isSensor = true;
mJumpAtkFix = mBody.createFixture(attackFixDef);
mJumpAtkFix.setUserData("ball");
}
示例7: init
import com.badlogic.gdx.physics.box2d.PolygonShape; //导入方法依赖的package包/类
private void init() {
mRegion = MyGdxGame.assetManager.getTextureAtlas(Constant.PLAY_BLOOD).findRegion("mp");
mBodyDef = new BodyDef();
mFixtureDef = new FixtureDef();
PolygonShape shape = new PolygonShape();
//初始化刚体形状
mBodyDef.type = BodyDef.BodyType.StaticBody;
mBodyDef.position.set(x, y);
shape.setAsBox(30 / Constant.RATE, 30 / Constant.RATE);
mFixtureDef.shape = shape;
mFixtureDef.isSensor = true;
mFixtureDef.filter.categoryBits = Constant.BLUE;
mFixtureDef.filter.maskBits = Constant.PLAYER;
mBody = mWorld.createBody(mBodyDef);
mBody.createFixture(mFixtureDef).setUserData("blue");
}
示例8: createFixtureDef
import com.badlogic.gdx.physics.box2d.PolygonShape; //导入方法依赖的package包/类
private FixtureDef createFixtureDef() {
PolygonShape shape = new PolygonShape();
// shape.set(new Vector2[]{
// new Vector2(1.3f, -1.29f),
// new Vector2(1f, -1.3f),
// new Vector2(-1f, -1.3f),
// new Vector2(-1.3f, -1.29f),
// new Vector2(-1.3f, 1.29f),
// new Vector2(-1f, 1.3f),
// new Vector2(1f, 1.3f),
// new Vector2(1.3f, 1.29f)
// });
shape.setAsBox(getWidth() * 0.49f, getHeight() * 0.459375f);
FixtureDef fixtureDef = new FixtureDef();
fixtureDef.shape = shape;
fixtureDef.density = 0.71f;
fixtureDef.friction = 0f;
fixtureDef.restitution = 0;
return fixtureDef;
}
示例9: createBody
import com.badlogic.gdx.physics.box2d.PolygonShape; //导入方法依赖的package包/类
@Override
protected Body createBody(final Box2DService box2d) {
final BodyDef bodyDef = new BodyDef();
bodyDef.type = BodyType.StaticBody;
bodyDef.fixedRotation = true;
final PolygonShape shape = new PolygonShape();
shape.setAsBox(Block.HALF_SIZE, Block.HALF_SIZE);
final FixtureDef fixtureDef = new FixtureDef();
fixtureDef.isSensor = true;
fixtureDef.shape = shape;
fixtureDef.filter.categoryBits = Box2DUtil.CAT_BLOCK;
fixtureDef.filter.maskBits = Box2DUtil.MASK_BLOCK;
final Body body = box2d.getWorld().createBody(bodyDef);
body.createFixture(fixtureDef);
shape.dispose();
return body;
}
示例10: createBody
import com.badlogic.gdx.physics.box2d.PolygonShape; //导入方法依赖的package包/类
@Override
protected Body createBody(final Box2DService box2d) {
final BodyDef bodyDef = new BodyDef();
bodyDef.type = BodyType.StaticBody;
bodyDef.fixedRotation = true;
final PolygonShape shape = new PolygonShape();
shape.setAsBox(HALF_SIZE, HALF_SIZE);
final FixtureDef fixtureDef = new FixtureDef();
fixtureDef.restitution = 1f;
fixtureDef.friction = 0f;
fixtureDef.shape = shape;
fixtureDef.filter.categoryBits = Box2DUtil.CAT_BLOCK;
fixtureDef.filter.maskBits = Box2DUtil.MASK_BLOCK;
final Body body = box2d.getWorld().createBody(bodyDef);
body.createFixture(fixtureDef);
shape.dispose();
return body;
}
示例11: Block
import com.badlogic.gdx.physics.box2d.PolygonShape; //导入方法依赖的package包/类
public Block(World world, float x, float f, BodyType type, boolean invisible) {
BodyDef bd = new BodyDef();
bd.type = type;
bd.position.set(x, f);
PolygonShape shape = new PolygonShape();
shape.setAsBox(size / 2, size / 2);
FixtureDef fd = new FixtureDef();
fd.density = 0.1f;
fd.shape = shape;
fd.friction = 0.1f;
fd.filter.groupIndex = Advio.GROUP_DONT_COLLIDE_WITH_PLAYER;
// fd.filter.groupIndex = Advio.GROUP_SCENERY;
body = world.createBody(bd);
body.createFixture(fd).setUserData(new UserData("block"));
this.invisible = invisible;
shape.dispose();
}
示例12: PressurePlate
import com.badlogic.gdx.physics.box2d.PolygonShape; //导入方法依赖的package包/类
public PressurePlate(Level l, World world, float x, float y, float weight, Block[] blocks) {
super(x, y);
this.level = l;
BodyDef bd = new BodyDef();
bd.type = BodyType.KinematicBody;
bd.position.set(x, y);
PolygonShape shape = new PolygonShape();
shape.setAsBox(Block.size / 2, Block.size / 2);
FixtureDef fd = new FixtureDef();
fd.density = 0.0f;
fd.shape = shape;
fd.friction = 0.1f;
fd.isSensor = true;
this.blocks = new ArrayList<Block>(Arrays.asList(blocks));
body = world.createBody(bd);
body.createFixture(fd).setUserData(new UserData("plate").add("pressed", false).add("weight", weight));
shape.dispose();
this.world = world;
}
示例13: AgarLogic
import com.badlogic.gdx.physics.box2d.PolygonShape; //导入方法依赖的package包/类
public AgarLogic(Level l, World world, float x, float y) {
super(x, y);
this.level = l;
BodyDef bd = new BodyDef();
bd.type = BodyType.KinematicBody;
bd.position.set(x, y);
PolygonShape shape = new PolygonShape();
shape.setAsBox(Block.size / 2, Block.size / 2);
FixtureDef fd = new FixtureDef();
fd.density = 0.0f;
fd.shape = shape;
fd.friction = 0.1f;
fd.isSensor = true;
body = world.createBody(bd);
body.createFixture(fd).setUserData(new UserData("agariologic"));
shape.dispose();
this.world = world;
}
示例14: Goal
import com.badlogic.gdx.physics.box2d.PolygonShape; //导入方法依赖的package包/类
public Goal(World world, float x, float y) {
super(x, y);
BodyDef bd = new BodyDef();
bd.type = BodyType.KinematicBody;
bd.position.set(x, y);
PolygonShape shape = new PolygonShape();
shape.setAsBox(Block.size / 2, Block.size / 2);
FixtureDef fd = new FixtureDef();
fd.density = 0.1f;
fd.shape = shape;
fd.friction = 0.1f;
fd.isSensor = true;
// fd.filter.groupIndex = Advio.GROUP_SCENERY;
body = world.createBody(bd);
body.createFixture(fd).setUserData(new UserData("goal"));
shape.dispose();
}
示例15: apply
import com.badlogic.gdx.physics.box2d.PolygonShape; //导入方法依赖的package包/类
@Override
public void apply () {
Body body = ((Rigidbody)getParent().getComponentByType(ComponentType.Rigidbody)).getBody();
FixtureDef fixtureDef = new FixtureDef();
PolygonShape shape = new PolygonShape();
shape.setAsBox(width / 2, height / 2, new Vector2(x, y), (float)Math.toRadians(angle));
fixtureDef.density = density;
fixtureDef.friction = friction;
fixtureDef.isSensor = isSensor;
fixtureDef.restitution = restitution;
fixtureDef.shape = shape;
if (fixture != null) {
dispose();
fixture = null;
((Rigidbody)getParent().getComponentByType(ComponentType.Rigidbody)).apply();
rebuildAll();
return;
}
fixture = body.createFixture(fixtureDef);
fixture.setFilterData(filter);
UserData userdata = new UserData();
userdata.component = (Rigidbody)getParent().getComponentByType(ComponentType.Rigidbody);
fixture.setUserData(userdata);
}