我正在尝试实现类似于iOS中的橡皮筋效果。我快到了,但是我需要一些帮助以使其完美。这是我用HaxeFlixel制作的游戏。
这是我有atm的代码:
// In main update loop
// If img was clicked
offsetY = Math.abs(img.y -mouseY);
...
if (img.y > 0) {
img.y = mouseY -(mouseY * .7);
}
else {
img.y = mouseY -offsetY;
}
它的工作方式大致上应该如此,但是问题是,当我开始拖动图像时,它会在“橡皮筋效果”开始播放之前捕捉到屏幕顶部下方的某个位置。如果我可以得到帮助,摆脱抢购将是很棒的!
最佳答案
我想到了!顺便说一句,这是我发现的一种算法,与苹果公司用于橡皮筋效果的算法非常相似(如果不相同)。
// * x = distance from the edge
// * c = constant value, UIScrollView uses 0.55
// * d = dimension, either width or height
// b = (1.0 – (1.0 / ((x * c / d) + 1.0))) * d
这是我为解决问题所做的工作:
img.y = (1.0 - (1.0 / (((FlxG.mouse.screenY -offsetY) * .55 / 640) + 1.0))) * 640;
(它的工作原理几乎与我上面发布的这一部分一样)
img.y = mouseY -(mouseY * .7);
但是我要解决“捕捉”问题所需要做的就是从鼠标位置减去y偏移,du! ; D还是谢谢你!
关于math - 橡皮筋效果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22133503/