About

<#TEMPLATE_INCLUDE_NINEPAGE_ABOUTME#>
  • Jul

    10

    动画学中的基本运动公式(二)

    • 0 Comments
    • Flash Platform
    • 发布:古树
    • 引用:0
    • 浏览:

    以下内容出自《Foundation Actionscript.3.0 Animation》:

    //移除出界对象:
    if (sprite.x - sprite.width / 2 > right ||
    sprite.x + sprite.width / 2 < left ||
    sprite.y - sprite.height / 2 > bottom ||
    sprite.y + sprite.height / 2 < top) {
     // 移除影片的代码
    }


    //重置出界对象:
    if (sprite.x - sprite.width / 2 > right ||
    sprite.x + sprite.width / 2 < left ||
    sprite.y - sprite.height / 2 > bottom ||
    sprite.y + sprite.height / 2 < top) {
     // 重置影片的位置和速度
    }


    //屏幕环绕出界对象:
    if (sprite.x - sprite.width / 2 > right) {
     sprite.x = left - sprite.width / 2;
    } else if (sprite.x + sprite.width / 2 < left) {
     sprite.x = right + sprite.width / 2;
    }
    if (sprite.y - sprite.height / 2 > bottom) {
     sprite.y = top - sprite.height / 2;
    } else if (sprite.y + sprite.height / 2 < top) {
     sprite.y = bottom + sprite.height / 2;
    }


    //摩擦力应用(正确方法):
    speed = Math.sqrt(vx * vx + vy * vy);
    angle = Math.atan2(vy, vx);
    if (speed > friction) {
     speed -= friction;
    } else {
     speed = 0;
    }
    vx = Math.cos(angle) * speed;
    vy = Math.sin(angle) * speed;


    //摩擦力应用(简便方法):
    vx *= friction;
    vy *= friction;