《AdvancED|《AdvancED ActionScript 3.0 Animation》读书笔记(1) —— 转向行为
1)寻找:
public function seek(target: Vector2D): void
{
var desiredVelocity: Vector2D = target.subtract(_position);
desiredVelocity.normalize();
desiredVelocity = desiredVelocity.multiply(_maxSpeed);
var force: Vector2D = desiredVelocity.subtract(_velocity);
_steeringForce = _steeringForce.add(force);
}
2)避开:
public function flee(target: Vector2D): void
{
var desiredVelocity: Vector2D = target.subtract(_position);
【《AdvancED|《AdvancED ActionScript 3.0 Animation》读书笔记(1) —— 转向行为】desiredVelocity.normalize();
desiredVelocity = desiredVelocity.multiply(_maxSpeed);
var force: Vector2D = desiredVelocity.subtract(_velocity);
_steeringForce = _steeringForce.subtract(force);
}
3)到达:
public function arrive(target: Vector2D): void
{
var desiredVelocity: Vector2D = target.subtract(_position);
desiredVelocity.normalize();
var dist: Number = _position.dist(target);
if(dist > _arrivalThreshold)
{
desiredVelocity = desiredVelocity.multiply(_maxSpeed);
}
else
{
desiredVelocity = desiredVelocity.multiply(_maxSpeed * dist /
_arrivalThreshold);
}
var force: Vector2D = desiredVelocity.subtract(_velocity);
_steeringForce = _steeringForce.add(force);
}
4)追捕:
public function pursue(target: Vehicle): void
{
var lookAheadTime: Number = position.dist(target.position) / _maxSpeed;
var predictedTarget: Vector2D =
target.position.add(target.velocity.multiply(lookAheadTime));
seek(predictedTarget);
}
5)躲避:
public function evade(target: Vehicle): void
{
var lookAheadTime: Number = position.dist(target.position) / _maxSpeed;
var predictedTarget: Vector2D =
target.position.add(target.velocity.multiply(lookAheadTime));
flee(predictedTarget);
}
6)漫游:
文章图片
init (){
private var _wanderAngle: Number = 0;
private var _wanderDistance: Number = 10;
private var _wanderRadius: Number = 5;
private var _wanderRange: Number = 1;
}
public function wander(): void
{
var center: Vector2D = velocity.clone().normalize().multiply(_wanderDistance);
var offset: Vector2D = new Vector2D(0);
offset.length = _wanderRadius;
offset.angle = _wanderAngle;
_wanderAngle += Math.random() * _wanderRange - _wanderRange * .5;
var force: Vector2D = center.add(offset);
_steeringForce = _steeringForce.add(force);
}
转载于:https://www.cnblogs.com/cly84920/archive/2012/10/15/4426490.html
推荐阅读
- 慢慢的美丽
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 《跨界歌手》:亲情永远比爱情更有泪点
- 诗歌:|诗歌: 《让我们举起世界杯,干了!》
- 期刊|期刊 | 国内核心期刊之(北大核心)
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- 人间词话的智慧
- 《一代诗人》37期,生活,江南j,拨动心潭的一泓秋水
- 广角叙述|广角叙述 展众生群像——试析鲁迅《示众》的展示艺术
- 书评——《小行星》