【发布时间】:2012-03-13 08:50:22
【问题描述】:
我正在开发一个游戏并实现了寻路算法。我的寻路返回给我一个节点数组,角色必须通过这些节点才能到达目的地。基本上我需要逐个节点补间,所以我使用 TimelineLite 并将所有补间添加到序列中。有用。
然而,
节点之间的补间存在延迟(角色移动,然后停止,然后再次移动......),我无法弄清楚原因。我该如何解决?
代码如下:
public function walk(startNode:Node,destinationNode:Node):void{
//retrieve the path of the character
var path:Array = Pathfinder.findPath(startNode,destinationNode,GenericMap.findConnectedNodes);
currentPath=path;
if(path!=null){
var pastX:Number;
var pastY:Number;
for(var index:int=0;index<path.length;index++)
{
var currentNode:Node = path[index] as Node;
testMoveThroughNodes(currentNode.x,currentNode.y);
}
}
}
private var speed:Number = 0.7;
private var timeline:TimelineLite = new TimelineLite();
/** tween the sprite through nodes of path*/
private function testMoveThroughNodes(targetX:Number,targetY:Number):void{
timeline.append(new TweenLite(monster,speed,{x:targetX,y:targetY}));
}
我可以对 TweenLite 排序的每个节点进行补间,但是它移动、停止和移动,看起来完全不自然。
【问题讨论】:
-
我添加了代码。请帮帮我。
标签: apache-flex actionscript gsap