当前位置: 首页> 书评> 正文

Flash ActionScript 3.0动画教程《第十章的修正“线下”问题》

  • 小小评论家小小评论家
  • 书评
  • 2023-03-26 16:52:55
  • 82

书中第十章的“线下”问题,并没有修正,小球从底部反弹至line的时候,仍然会穿过line到上面去,而不是反弹,将bounce参数调成-1就可以看得很明白了。

更改:如y2的绝对值小于小球半径,则进行反弹,如果y2的值为正则将小球重置到到线下,如为负则重置到线上

if(Math.abs(y2) < ball.height / 2)

{

// rotate coordinates

var x2:Number = cos * x1 + sin * y1;

// rotate velocity

var vx1:Number = cos * ball.vx + sin * ball.vy;

if(y2 > 0) {

y2 = ball.height / 2;

}

else {

y2 = -ball.height / 2;

}

vy1 *= bounce;

// rotate everything back;

x1 = cos * x2 - sin * y2;

y1 = cos * y2 + sin * x2;

ball.vx = cos * vx1 - sin * vy1;

ball.vy = cos * vy1 + sin * vx1;

ball.x = line.x + x1;

ball.y = line.y + y1;

}

阅读全文