2015-02-01 2 views
0

Я бы хотел, чтобы мои кнопки исчезали, когда меняли сцену, а не просто их. Я использую комплект спрайтов и UIView.animateWithDuration не работает.Swift - Spritekit - Кнопка затухания в/из

Как еще вы могли это сделать с помощью набора спрайтов в swift?

+0

Если с помощью кнопки вы имеете в виду UIButton, он не будет, и вы не должны использовать один в вашей игре. Если вы хотите кнопку, вам нужно реализовать свой собственный, используя подкласс SKNode, SKSpriteNode и т. Д. –

+0

Благодарим вас за разъяснение, что для меня, можете ли вы предложить быстрый пример того, как реализовать это или указать мне в правильном направлении? Мне нужно что-то, что пользователь нажимает, чтобы перенести их в определенную сцену (что я думал, что кнопка будет лучшей ставкой) – LukeTerzich

+1

Несомненно, есть несколько хороших примеров того, как вы могли бы реализовать сенсорную обработку кнопок, созданных из узлов [здесь] (http://stackoverflow.com/questions/19082202/setting-up-buttons-in-skscene). В принятом ответе показана основная идея, но следующий ответ намного интереснее. Он показывает вам, как вы можете использовать класс подкласса SKSpriteNode, чтобы создать класс кнопки. Эти ответы находятся в Objective-C, но они должны хорошо понять ситуацию. –

ответ

1

Я предполагаю, что вы используете UIButtons, и вы действительно не должны использовать только SKNodes (Sprites, формы, этикетки и т.д.), а также методы прикосновения, как обращаться: touchBegan: touchMoved: TouchEnded:

Если вы хотите создать кнопку или переключатель для общего использования, вы должны попробовать этот контроль, который я сделал, использование его довольно прямо вперед:

вы просто инициализировать тип кнопки/переключатель вы хотите (ColoredSprite, Textured или TextOnly)

let control = TWButton(normalColor: SKColor.blueColor(), highlightedColor: SKColor.redColor(), size: CGSize(width: 160, height: 80))` 

И после инициализации добавления закрытия к нему (например, addTargetForSelector на UIButton)

control.addClosureFor(.TouchUpInside, target: self, closure: { (scene, sender) ->() in 
    scene.testProperty = "Changed Property" 
    }) 
} 

Вот оно! Там больше информации о разделе риого на странице GitHub: https://github.com/txaidw/TWControls

Затем вы можете использовать действия, чтобы исчезнуть вашей кнопку

SKAction.fadeAlphaTo(alpha:, duration:) 
Смежные вопросы