Как мне запрограммировать клик по изометрической плитке? - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть изометрическая сетка с плитками для моего проекта iOS, и я хочу иметь возможность нажимать на соответствующие плитки.Сетка выглядит следующим образом: enter image description here

Она была создана путем рисования прямых линий с использованием

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или есть более простой способ?

...