触摸移动功能影响按下按钮

时间:2017-07-08 10:24:19

标签: ios iphone swift xcode touch

我的游戏中有这个字符菜单,显示字符,并通过触摸移动功能从一侧移动到另一侧。

enter image description here

我在skscene(灰色按钮)中有一个按钮,当中心角色发生变化时,该按钮会变为某个按钮,具体取决于某个角色是否已解锁或未确定将显示哪个按钮。

我遇到的问题是,当我尝试按下按钮选择角色或按下解锁角色时需要多次按下才能使其正常工作,我接触触摸结束功能中的按钮,如下所示

OBJECTS

如果我在触摸开始方法中使用它,它可以正常工作而不需要多次按下它以使其工作。但是,如果玩家意外地触摸它,那么它会解锁角色,如果他们不想解锁角色或改变主意,这就是问题。

触摸移动功能使菜单从一侧移动到另一侧影响我按下按钮的能力,因此导致我需要多次按下按钮才能使其工作。

如果按下其中一个按钮,是否有某些停止触摸移动功能的触发? (或被按住)这是我的全部功能代码。

nasm.name = nasm ${QMAKE_FILE_IN}
nasm.input = ASM_FILES
nasm.variable_out = OBJECTS
nasm.commands = nasm -f win64 ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
nasm.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_IN_BASE}$${first(QMAKE_EXT_OBJ)}
nasm.CONFIG += target_predeps

QMAKE_EXTRA_COMPILERS  += nasm

ASM_FILES += asm.s

1 个答案:

答案 0 :(得分:1)

我会用if语句检查触摸是否在某个视图中。

这样的事情:

override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {

//let duration = 0.01
let touch: UITouch = touches.first!
if touch.view == self.view{
    let newPosition = touch.location(in: self)
    let oldPosition = touch.previousLocation(in: self)
    let xTranslation = newPosition.x - oldPosition.x

    if centerPlayer!.frame.midX > size.width/2 {
        if (leftPlayer != nil) {
            let actualTranslation = leftPlayer!.frame.midX + xTranslation > leftGuide ? xTranslation : leftGuide - leftPlayer!.frame.midX
            movePlayerByX(player: leftPlayer!, x: actualTranslation)
        }
    } else {
        if (rightPlayer != nil) {
            let actualTranslation = rightPlayer!.frame.midX + xTranslation < rightGuide ? xTranslation : rightGuide - rightPlayer!.frame.midX
            movePlayerByX(player: rightPlayer!, x: actualTranslation)
        }
    }

    movePlayerByX(player: centerPlayer!, x: xTranslation)
    priceLabel.isHidden = true; selectButton.isHidden = true; 
    lockedButton.isHidden = true; otherButton.isHidden = true
}

}