您的位置:首页 > 编程语言

[LIBGDX学习]LibGDX代码详解(十九)Box2D 金字塔

2018-02-24 14:08 232 查看
package com.mygdx.game.box2d;

import com.badlogic.gdx.math.Vect
a6da
or2;
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.EdgeShape;
import com.badlogic.gdx.physics.box2d.PolygonShape;
import com.badlogic.gdx.physics.box2d.World;

public class Pyramid extends Box2DTest {
@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.0f);
shape.dispose();
}

{
float a = 0.5f;
PolygonShape shape = new PolygonShape();
shape.setAsBox(a, a);// 长宽一米的砖块

//Vector2 x = new Vector2(-7.0f, 0.75f);// 起始点
Vector2 x = new Vector2(-20.0f, 0.01f);
Vector2 y = new Vector2();
//Vector2 deltaX = new Vector2(0.5625f, 1.25f);// 下一层往后缩一点
//Vector2 deltaY = new Vector2(1.125f, 0.0f);
Vector2 deltaX = new Vector2(0.57f, 1.01f);
Vector2 deltaY = new Vector2(1.1f, 0.0f);

for (int i = 0; i < 20; i++) {
y.set(x);

for (int j = i; j < 20; j++) {
BodyDef bd = new BodyDef();
bd.type = BodyType.DynamicBody;
bd.position.set(y);
System.out.println(y);
Body body = world.createBody(bd);
body.createFixture(shape, 5.0f);

y.add(deltaY);// 增加1.125
}

x.add(deltaX);
}

}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: