gpt4 book ai didi

ios - 使 TouchBegan 方法适用于特定 View /图像

转载 作者:行者123 更新时间:2023-11-30 11:03:19 25 4
gpt4 key购买 nike

我一直在谷歌上搜索这个问题,但找不到答案。

我想在特定 View 上使用 TouchesBegan,这样当我在另一个 View 上按下某些内容时,它就不会启动游戏。 (我想为我的游戏创建多个关卡,但是,我不想通过 spritkit)基本上,总而言之,我想在一个 View 上拥有 TouchesBegan 功能,但不在另一个 View 上/有什么办法通过声明关闭 TouchesBegan?

提前感谢您的回答/或者示例代码会很棒:)

最好,萨姆森·S。

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
// First touch to start the game
if gameState == .ready {
startGame()

}


audioPlayerNine.play()
audioPlayerTwo.stop()
clockLabel.isHidden = false
bestTimeLabel.isHidden = false
startText.isHidden = true
bgImageTwo.isHidden = true
bgImage.isHidden = false
rText.isHidden = true
fText.isHidden = true
iText.isHidden = true
bgImageThree.isHidden = true
periodText.isHidden = true
audioPlayerFour.stop()
restartText.isHidden = true
audioPlayerFive.stop()
audioPlayerFive.currentTime = 0
lineImage.isHidden = false
lineImageTwo.isHidden = false
periodTextTwo.isHidden = false
self.rTextTwo.isHidden = false
self.iTextTwo.isHidden = false
self.fTextTwo.isHidden = false
levelLabel.isHidden = false
audioPlayerSeven.play()
audioPlayerSeven.volume = 0.3
audioPlayerSix.stop()
audioPlayerTen.play()
audioPlayerTen.volume = 0.2
audioPlayerNine.volume = 1.5
eText.isHidden = true
eTextTwo.isHidden = false
bgImageMenu.isHidden = true
resumeButton.isHidden = true
restartButton.isHidden = true
mainMenuButton.isHidden = true
muteButton.isHidden = true
unMuteButton.isHidden = true
menuLine.isHidden = true
menuLineTwo.isHidden = true
bestTimeLabel.isHidden = true
imagewhite.isHidden = false
imagewhiteTwo.isHidden = false
menuButton.isHidden = false
bestLabel.isHidden = true





if let touchLocation = event?.allTouches?.first?.location(in: view) {
// Move the player to the new position
movePlayer(to: touchLocation)

// Move all enemies to the new position to trace the player
moveEnemies(to: touchLocation)
}
}

最佳答案

touchesBegan() 是 NSResponder 定义的方法,应用程序中的每个 UIView 都是一个 NSResponder。这意味着代码中的 TouchBegan() 方法已经适用于特定 View 。如果你看一下上面的代码是它的一部分的类,它就像一个 UIView 或 viewController,并且这个 TouchBegan() 方法接收该 View 内任何地方的触摸。

在具有不同 View 的程序中,您可以使用不同的 TouchBegan() 方法,每个 View 一个(或者每个具有重要触摸操作的 View 一个)。这些方法可以完成不同的事情——可以开始游戏,可以移动游戏中的棋子,等等。

一般来说,touchesBegan() 对于您想要跟踪用户在 View 中拖动的位置和方式的情况(和 View )很有用。如果您只关心屏幕显示的某个元素是否被触摸以触发单个操作(例如开始游戏),则 UIButton(特定类型的 View )通常是比实现自己的触摸更方便的方法处理程序。 Here's a very simple tutorial到 Swift 和 iOS 中的 UIButtons。在您的情况下,可以在 gameState == .ready 时设置按钮的 state (无论是可点击还是禁用)以及按钮的 action (单击按钮时发生的情况)可能是调用 startGame()

关于ios - 使 TouchBegan 方法适用于特定 View /图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53037658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com