libgdx官方tests详解
package com.mygdx.game.box2d;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.physics.box2d.Body;
import com.badlogic.gdx.physics.box2d.BodyDef;
import com.badlogic.gdx.physics.box2d.BodyDef.BodyType;
import com.badlogic.gdx.physics.box2d.CircleShape;
import com.badlogic.gdx.physics.box2d.EdgeShape;
import com.badlogic.gdx.physics.box2d.World;
public class SphereStack extends Box2DTest {
int e_count = 50;//ori:10
@Override
protected void createWorld (World world) {
{
BodyDef bd = new BodyDef();
Body ground = world.createBody(bd);
EdgeShape shape = new EdgeShape();
shape.set(new Vector2(-40, 0), new Vector2(40, 0));
ground.createFixture(shape, 0);// 创建存在物
shape.dispose();
}
{
CircleShape shape = new CircleShape();
shape.setRadius(0.3f);// ori 1.0f
for (int i = 0; i < e_count; i++) {
BodyDef bd = new BodyDef();
bd.type = BodyType.DynamicBody;
bd.position.set(0, 4.0f + 3.0f * i);
Body body = world.createBody(bd);
body.createFixture(shape, 1.0f);
}
shape.dispose();// 一个形状共享一堆body
}
}
}
本文介绍了一个使用LibGDX实现的SphereStack测试案例,该案例通过创建一系列堆叠的圆形物体来演示Box2D物理引擎的行为。文章详细解释了如何定义圆形物体的位置、半径及动态属性,并展示了如何利用EdgeShape创建地面边界。
2257

被折叠的 条评论
为什么被折叠?



