我是swift的新手,正在制作一个tic tac toe游戏,我目前大部分功能正在工作,但还是无法弄清楚如何阻止一个方块不止一次被触摸。下面的代码就是我如何认识到目前为止的接触。
答案 0 :(得分:1)
通常使用iOS,您可以让他们为您完成工作。在您的情况下,我会使用A
课程并对其进行点击操作。
因此,只需打开故事板并用UIButton
个对象替换UIImageView
个对象。然后在屏幕截图中标记的字段右侧将图像设置为您开始的任何内容(来自您的代码,我猜它的类似UIButton
)。
重复所有九个TicTacToe按钮。
Ctrl-Track从第一个按钮进入控制视图并设置操作。操作窗口应如下所示:
这应该为您的控件视图类添加一个函数,如:
Picture1.png
其中@IBAction func button(_ sender: UIButton) {
// All your game response goes here
}
是实际按下的按钮。
现在ctrl-跟踪所有其他按钮到同一个功能。无论按下哪个按钮,都会调用该函数。使用sender
在右侧按钮上设置正确的图像。
您现在可以使用所有代码填充该函数。我会除了游戏状态的一些表示 - 例如一个2dim数组 - 保持哪个用户点击了哪个字段,并且可以用来检查,如果一个用户确实赢了。
答案 1 :(得分:0)
如果你只是添加一个标志怎么办?
var isTouched = false
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let Touch = event?.allTouches!.first!
if topleft.frame.contains((Touch?.location(in: self.view))!) && !self.isTouched{
self.isTouched = true
if currentPlayer == 1 {
topleft.image = #imageLiteral(resourceName: "Picture2.png")
currentPlayer = 2
playerturn.text = "Player 2, it's your turn!"
playerturn.textAlignment = .center
}
else {
topleft.image = #imageLiteral(resourceName: "Picture3.png")
currentPlayer = 1
playerturn.text = "Player 1, it's your turn!"
playerturn.textAlignment = .center
}
}