У меня есть изометрическая сетка с плитками для моего проекта iOS, и я хочу иметь возможность нажимать на соответствующие плитки.Сетка выглядит следующим образом:
Она была создана путем рисования прямых линий с использованием
let path = UIBezierPath()
path.move(to: CGPoint(x:0, y:size.height / 2.0))
path.addLine(to: CGPoint(x:size.width / 2.0, y:0))
... и т. Д. До одной изометрической плиткибыл создан.Затем плитка размещается в соответствии с определенным алгоритмом.
Все плитки были сохранены в array
, к которому можно получить доступ следующим образом:
gameBoardArray[4][3].fillColor = SKColor.brown
Теперь я не уверен, как на самом деле нажать (и скажем, пометить цветом) определенная плитка.Я полагаю, я должен использовать функцию
func touchDown(atPoint pos : CGPoint)
Тогда что?pos
в функции показывает положение x
и y
того места, где вы нажали, а print(gameBoard[0][0])
дает координаты, подобные {{-218.60400390625, -17.207000732421875}, {65.207000732421875, 34.415000915527344}}
.(Я не совсем понимаю, почему существует 4 координаты. Разве не должно быть одной для x и одной для y?)
Должен ли я проверить, находятся ли координаты pos
в пределах координат gameBoard
или есть более простой способ?