当前位置:嗨网首页>书籍在线阅读

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);
}