第五章
速度和加速度
1. 速度:特定方向上的速率,改变对象的位置。 ball.x += vx;
加速度:改变对象速度的力。 vx += ax;
角速度和角加速度
2.可以通过三角函数来计算角速度分别作用于x轴和y轴上的速度,同理角加速度也是,通过三角计算分给作用于x和y上的加速度。
speed = 5;
vx = Math.sin(angle) * speed; // angle换算成弧度
vy = Math.cos(angle) * speed;
ball.x += vx;
ball.y += vy;
force = 5;
ax = Math.sin(angle) * force;
vx += ax;
ball.x += vx;
速度和加速度
1. 速度:特定方向上的速率,改变对象的位置。 ball.x += vx;
加速度:改变对象速度的力。 vx += ax;
角速度和角加速度
2.可以通过三角函数来计算角速度分别作用于x轴和y轴上的速度,同理角加速度也是,通过三角计算分给作用于x和y上的加速度。
speed = 5;
vx = Math.sin(angle) * speed; // angle换算成弧度
vy = Math.cos(angle) * speed;
ball.x += vx;
ball.y += vy;
force = 5;
ax = Math.sin(angle) * force;
vx += ax;
ball.x += vx;
3.重力加速度:其实就是加速度,作用于y轴上(时刻)。ay += gravity;
// 两个轴上的加速度
addEventListener(Event.ENTER_FRAME,onFrame);
stage.addEventListener(KeyboardEvent.KEY_DOWN,onDown);
stage.addEventListener(KeyboardEvent.KEY_UP,onUp);
var ax:Number = 0;
var ay:Number = 0;
var vx:Number = 0;
var vy:Number = 0;
function onDown(e:KeyboardEvent):void
{
switch(e.keyCode)
{
case Keyboard.LEFT:
ax = - 0.2;
break;
case Keyboard.RIGHT:
ax = 0.2;
break;
case Keyboard.UP:
ay = -0.2;
break;
case Keyboard.DOWN:
ay = 0.2;
break;
}
}
function onUp(e:KeyboardEvent):void
{
ax = ay = 0;
}
function onFrame(e:Event):void
{
vx += ax;
vy += ay;
ball.x += vx;
ball.y += vy;
}
// 太空船
ship.tail.visible = false;
addEventListener(Event.ENTER_FRAME,onFrame);
stage.addEventListener(KeyboardEvent.KEY_DOWN,onDown);
stage.addEventListener(KeyboardEvent.KEY_UP,onUp);
var vr:Number = 0;
var thrust:Number = 0;
var vx:Number = 0,vy:Number = 0;
function onDown(e:KeyboardEvent):void
{
switch(e.keyCode)
{
case Keyboard.LEFT:
vr = -5;
break;
case Keyboard.RIGHT:
vr = 5;
break;
case Keyboard.UP:
thrust = 0.2;
ship.tail.visible = true;
break;
}
}
function onUp(e:KeyboardEvent):void
{
vr = 0;
thrust = 0;
ship.tail.visible = false;
}
function onFrame(e:Event):void
{
ship.rotation += vr;
var angle:Number = ship.rotation * Math.PI / 180;
var ax:Number = thrust * Math.cos(angle);
var ay:Number = thrust * Math.sin(angle);
vx += ax;
vy += ay;
ship.x += vx;
ship.y += vy;
}