使用UIPanGestureRecognizer快速滚动视差

时间:2016-02-23 14:50:28

标签: ios swift sprite-kit parallax uipangesturerecognizer

我有一个游戏的两个图像我想通过使用精灵套件平移来进行视差滚动。

前景图像比背景图像大1.25倍,我使用UIPanGestureRecognizer来平移图像。因此,我将前景的平移乘以1.25(foregroundMoveModifier),以便播放器同时平移到两个图像的边缘。 (希望有道理)

我为每个图像设置了物理边缘,这样它们就无法从视图的边缘平移。

但是背景图像到达边缘并在前景之前被停止,因此在一两秒钟内,背景仍然是前景仍在移动,这破坏了视差滚动产生的深度错觉。好像前景翻译需要乘以高于1.25才能以更快的速度平移?

我是否已将此简化为简单,并不像将前景翻译乘以1.25一样简单?

func panned(sender: UIPanGestureRecognizer){
        if sender.state == UIGestureRecognizerState.Began{

        }else{
            if sender.state == UIGestureRecognizerState.Changed{

                var translation = sender.translationInView(sender.view)
                translation = CGPointMake(-translation.x, translation.y);

                background.position = CGPointMake(background.position.x - translation.x, background.position.y - translation.y)
                foreground.position = CGPointMake(foreground.position.x - translation.x*foregroundMoveModifier , foreground.position.y - translation.y*foregroundMoveModifier)



                sender.setTranslation(CGPointZero, inView: sender.view)

            } else {
                if sender.state == UIGestureRecognizerState.Ended{

                }
            }
        }
    }

0 个答案:

没有答案