11.4.加速运动

问题
我想让物体加速移动
解决办法
应用加速方法
讨论
许多人认为加速只是简单的提高速度而已,比如想让车开的快些就踩一下加速器。更科学的定义为速率的变化称为加速。虽然大多数情况只是提高物体的速度,实际上还包括减速和改变方向。

下面的例子中变量_ax和_ay代表加速,_vx和_vy代表速率:
+展开
-ActionScript
package {
import flash.display.Sprite;
import flash.events.Event;
public class Accel extends Sprite {
private var _sprite:Sprite;
private var _ax:Number = .3;
private var _ay:Number = .2;
private var _vx:Number = 0;
private var _vy:Number = 0;
public function Accel( ) {
_sprite = new Sprite( );
_sprite.graphics.beginFill(0x0000ff, 100);
_sprite.graphics.drawCircle(0, 0, 25);
_sprite.graphics.endFill( );
_sprite.x = 50;
_sprite.y = 100;
addChild(_sprite);
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
public function onEnterFrame(event:Event):void {
_vx += _ax;
_vy += _ay;
_sprite.x += _vx;
_sprite.y += _vy;
}
}
}

除了改变速度,还可以改变方向:
+展开
-ActionScript
var angle:Number = 45;
var accel:Number = .5;

转换每个轴上的加速:
+展开
-ActionScript
var radians:Number = angle * Math.PI / 180;
_ax = Math.cos(radians) * accel;
_ay = Math.sin(radians) * accel;

把这两个值添加到速率中。

加支付宝好友偷能量挖...


评论(0)网络
阅读(105)喜欢(0)flash/flex/fcs/AIR