gpt4 book ai didi

ios - 如何在回合制循环中实现框架功能 touchDown?

转载 作者:行者123 更新时间:2023-11-28 13:30:14 28 4
gpt4 key购买 nike

我正在使用一个简单的回合制循环,在玩家回合和敌人回合之间切换。在玩家回合中,loop 应该“暂停”,直到 framework function touchDown 被激活,然后将回合传递给敌人。我不确定如何实现它,因为每当您按下屏幕时 touchDown 都会自动触发。

我是要使用某种类型的 observer 还是 #selector?都尝试过,但都没有成功,但这可能只是因为我缺乏经验。如果我使用 selectorloop 不会暂停等待屏幕被点击。至于观察者,我只是不确定它是如何实现的。我还尝试将整个 touchDown 方法添加到玩家回合中,但这显然不起作用。

循环看起来像这样:

var state = "PLAYER"
func runGame() {
while(gameIsProgressing) {
if(state == "PLAYER") {
print("Player is doing stuff")

//THE touchDown METHOD SOULD BE TRIGGERD HERE

state = "ENEMY"

}else if(state == "ENEMY") {
print("\n🙈ENEMY IS DOING STUFF🙈")

state = "PLAYER"
}
}
}

此外,重要的是 touchDown 仅在玩家回合中触发,而不是在按下屏幕时触发。

有什么想法吗?

最佳答案

既然你在这里用 GUI 编程,你不应该以这种命令式的方式思考。没有(好的)方法可以“暂停”while 循环“直到”某事发生。您应该以更加事件驱动的方式思考。

与其考虑 while 循环,不如考虑发生的事件。在本例中,事件是 touchDown。请注意,我不知道名为 touchedDown 的库函数(您是说 touchesBegan 还是这是 UIControl 的操作?),但我会假设它存在。当玩家触摸屏幕时,你希望发生什么?好吧,可能是这样的:

    guard gameIsProgressing else { return }
if(state == "PLAYER") {
someFunctionThatShowsWhatThePlayerDid()

state = "ENEMY"
print("\n🙈ENEMY IS DOING STUFF🙈")

someFunctionThatMakesTheEnemyDoStuff(completion: {
self.state = "PLAYER"
})
}

关于ios - 如何在回合制循环中实现框架功能 touchDown?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57503647/

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