如何在回合制循环中实现框架功能 touchDown?
How do I implement framework function touchDown in a turnbased loop?
我正在使用一个简单的回合制循环,在玩家回合和敌人回合之间切换。在玩家回合中 loop
应该 "pause" 直到 framework function
touchDown
被激活,然后将回合交给敌人。我不确定如何实现它,因为 touchDown
会在您按下屏幕时自动触发。
我是要使用某种 observer
还是 #selector
?都尝试过,但都没有成功,但这可能只是因为我缺乏经验。如果我使用 selector
,loop
不会暂停等待屏幕被点击。至于观察者,我只是不确定它是如何实现的。我还尝试将整个 touchDown
方法添加到玩家回合中,但这显然不起作用。
loop
看起来像这样:
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("\nENEMY IS DOING STUFF")
state = "PLAYER"
}
}
}
此外,重要的是 touchDown
仅在玩家回合中触发,而不是在按下屏幕时触发。
有什么想法吗?
既然你在这里用 GUI 编程,你不应该以这种命令式的方式思考。没有(好的)方法可以 "pause" while 循环 "until" 事情发生了。您应该以更事件驱动的方式思考。
与其考虑 while 循环,不如考虑发生的事件。在这种情况下,事件是 touchDown
。请注意,我不知道名为 touchedDown
的库函数(您是指 touchesBegan
还是针对 UIControl
的操作?),但我假设它存在。当玩家触摸屏幕时,你希望发生什么?嗯,大概是这样的:
guard gameIsProgressing else { return }
if(state == "PLAYER") {
someFunctionThatShowsWhatThePlayerDid()
state = "ENEMY"
print("\nENEMY IS DOING STUFF")
someFunctionThatMakesTheEnemyDoStuff(completion: {
self.state = "PLAYER"
})
}
我正在使用一个简单的回合制循环,在玩家回合和敌人回合之间切换。在玩家回合中 loop
应该 "pause" 直到 framework function
touchDown
被激活,然后将回合交给敌人。我不确定如何实现它,因为 touchDown
会在您按下屏幕时自动触发。
我是要使用某种 observer
还是 #selector
?都尝试过,但都没有成功,但这可能只是因为我缺乏经验。如果我使用 selector
,loop
不会暂停等待屏幕被点击。至于观察者,我只是不确定它是如何实现的。我还尝试将整个 touchDown
方法添加到玩家回合中,但这显然不起作用。
loop
看起来像这样:
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("\nENEMY IS DOING STUFF")
state = "PLAYER"
}
}
}
此外,重要的是 touchDown
仅在玩家回合中触发,而不是在按下屏幕时触发。
有什么想法吗?
既然你在这里用 GUI 编程,你不应该以这种命令式的方式思考。没有(好的)方法可以 "pause" while 循环 "until" 事情发生了。您应该以更事件驱动的方式思考。
与其考虑 while 循环,不如考虑发生的事件。在这种情况下,事件是 touchDown
。请注意,我不知道名为 touchedDown
的库函数(您是指 touchesBegan
还是针对 UIControl
的操作?),但我假设它存在。当玩家触摸屏幕时,你希望发生什么?嗯,大概是这样的:
guard gameIsProgressing else { return }
if(state == "PLAYER") {
someFunctionThatShowsWhatThePlayerDid()
state = "ENEMY"
print("\nENEMY IS DOING STUFF")
someFunctionThatMakesTheEnemyDoStuff(completion: {
self.state = "PLAYER"
})
}