0

我正在使用 caurina.transitions.Tweener; 使用 AS3 类通过我的 3D 环境(使用 alternativa3D 平台创建)从 A 点到 B 点补间一个 3D 对象。一切正常,它们按预期从他们所在的地方移动到我告诉他们去的地方。

我想知道如果他们试图走过的斜坡太陡(如现实生活中的一座巨山或山),是否有办法让物体停止移动(或补间)?

这基本上是我为此使用的代码:

var playerDistance: Number = Vector3D.distance(
new Vector3D( _escapeeManager.activeEscapee.x,
_escapeeManager.activeEscapee.y,
_escapeeManager.activeEscapee.z ),
intersectData.point );

Tweener.addTween( _escapeeManager.activeEscapee, { x:intersectData.point.x, y:intersectData.point.y, time:(playerDistance/_escapeeManager.activeEscapee.speed), transition:"linear" } );

如果你想在我正在开发的游戏中看到一个例子,可以在这里找到: http ://redmenmusic.ca/godsend.html

谢谢你们的帮助!

4

2 回答 2

0

caurina.transitions.Tweener 有一些属性可以方便地解决您的问题。我并不是说 Tweener 是最好的方法,我猜它会让你到达你想要的地方:)。

可以在此处找到官方 Tweener 文档网站:http: //hosted.zeh.com.br/tweener/docs/en-us/。“补间参数”部分对您来说会很有趣。

因此,对于您的问题,我建议以这种方式处理它:在 Tweener 的每次更新时都会执行一个onUpdate事件。在每次更新时,您都可以检查坡度是否陡峭。示例:Tweener.addTween(myMovieClip, { x:100, time:1, onUpdate:function() { / * 在这里检查 slode 是否陡峭 - 如果是,您可以移除对象上的 Tweener 并继续另一个函数 * / }});

我希望它很清楚:) 祝你好运!

于 2011-10-04T09:01:02.413 回答
0

将 Tweener 用于表面动画以外的任何东西似乎有点奇怪——您可能需要实现一个更复杂的系统来处理对象移动、碰撞检测、斜坡等。

于 2011-10-03T22:32:20.037 回答