33-创建小球
5.6.8 创建小球
在Box2D中创建示例中可以下落和反弹的小球与创建墙体的过程非常相似。在这个练习中,本书将创建50个随机位置和大小的小球。位置和尺寸的单位也都是MTS单位。和创建墙体唯一的实质差别是,在设置fixture的shape属性时,调用的是b2CircleShape(size)方法。其中,size是随机的大小,单位是MTS。
var numBalls = 50;
var balls = new Array();
for (var i=0; i < numBalls; i++) {
var ballDef = new b2BodyDef;
ballDef.type = b2Body.b2_dynamicBody;
var ypos = (Math.random() * 8)+ 1;
var xpos = (Math.random() * 14)+ 1;
var size = (Math.random() * .4)+ 0.2;
ballDef.position.Set(xpos, ypos);
var ballFixture = new b2FixtureDef;
ballFixture.density = 10.0;
ballFixture.friction = 0.5;
ballFixture.restitution = 1;
ballFixture.shape = new b2CircleShape(size);
var newBall = world.CreateBody(ballDef)
newBall.CreateFixture(ballFixture);
balls.push(newBall);
}