Итак, я сделал изометрическую сетку c, которая была бы миром / уровнем игры, и я хочу установить границы вокруг сетки, чтобы игрок не мог go от них отойти. Поскольку все это наклонно, и функции, которые я написал, чтобы сделать сетки автоматически размещающими плитки, я не могу пробовать и ошибки CGPoints, пока я не получу их правильно. Вот код, который я использовал для сетки
func newTile(size:CGSize) -> SKShapeNode {
let shape = SKShapeNode()
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))
path.addLine(to: CGPoint(x:0, y:-size.height / 2.0))
path.addLine(to: CGPoint(x:-size.width / 2.0, y:0))
path.close()
shape.path = path.cgPath
shape.lineWidth = 1.0
shape.fillColor = SKColor.gray
return shape
}
func tilePosition(col:Int, row:Int) -> CGPoint {
let x = (CGFloat(row) * tileWidth / 2.0) + (CGFloat(col) * tileWidth / 2.0)
let y = (CGFloat(col) * tileHeight / 2.0) - (CGFloat(row) * tileHeight / 2.0)
return CGPoint(x: x-2000, y: y-100)
}
let tileHeight:CGFloat = 45.0
let tileWidth:CGFloat = 90.0
let numRows = 40
let numCols = 40
let size = CGSize(width: tileWidth, height: tileHeight)
for row in 1...numRows {
for col in 1...numCols {
let tile = newTile(size: size)
tile.position = tilePosition(col: col, row: row)
self.addChild(tile)
}
}
Как бы я установил границу для последней плитки, которую он создает?