[LIBGDX学习]LibGDX代码详解(十二)Box2D

本文介绍了一个使用LibGDX实现的SphereStack测试案例,该案例通过创建一系列堆叠的圆形物体来演示Box2D物理引擎的行为。文章详细解释了如何定义圆形物体的位置、半径及动态属性,并展示了如何利用EdgeShape创建地面边界。

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
		}

	}

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值