簡體   English   中英

橡皮筋效果

[英]Rubber band effect

我正在嘗試實現類似於iOS中的橡皮筋效果。 我快到了,但是我需要一些幫助才能使其完美。 這是我用HaxeFlixel制作的游戲。

  • “ img”是可拖動的圖像。
  • x和y的所有原點位於左上角。

這是我有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還是謝謝你!

有點需要更多的上下文,但是對我來說突出的一件事是這行:

x和y的所有原點位於左上角。

我只想仔細檢查一下javascript中x和y的原點的值是否在文檔/元素的正確上下文中...因此,它可能會對齊到對齊到“ true”(文檔左上角的原點)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM