我有一个Circle
(在整个问题中我将其称为Particle
),其中添加了Modifier
,然后添加了Surface
,将事件传递给了Generic Sync
(触摸/点击)。 sync
事件允许我更改Particle
,start
和update
事件的end
位置,以便我可以在边界框内拖动它。
我的应用程序中有一条规则如果粒子在同步start
和end
事件上的位置之间的距离低于某个阈值,那么粒子需要动画回到start
职位。
例如:粒子在同步start
处从[0,0]开始,并移至[100,100]。两点之间的距离(约为141.42)超过了我的阈值50 ......
如何施加力/速度/?将Particle
动画回[0,0]?
注意:我知道我可以很容易地使用Modifiers
执行此操作,但我正在尝试严格使用物理引擎。
修改 我想出了一个解决方案,涉及使用可转换和设置间隔来运行,不断更新粒子的位置,然后将可转换设置为我想要的最终位置并清除可转换回调中的间隔。
var retreatTrans = new Transitionable(myParticle.getPosition());
// Set a temporary interval to update the position
// as we change the transitionable (below)
var retreatInterval = setInterval(function () {
myParticle.setPosition(retreatTrans.get());
});
// Set transitionable to our desired retreatPosition
retreatTrans.set([0,0], {duration: 100}, function () {
// Clear our interval
clearInterval(retreatInterval);
});
答案 0 :(得分:0)
如果我正确理解您的问题,您想要从原点拖动particle/circle/rectangle
,然后在touchend上拖动particle/circle/rectangle
移回原点。
使用物理引擎实现此目的的方法之一是通过Spring
。如果你看一下Scrollview
,它会在内部使用一个弹簧来弹跳"弹跳"当你到达边缘时回来。我会看看我是否可以稍后进行快速实施以证明这一点。