我正在尝试从笛卡尔(正方形)瓷砖创建等距瓷砖。我有方程式,但似乎无法正确理解。
此代码生成一个笛卡尔正方形网格。
for itemX in 0...nrOfXtiles - 1 {
for itemY in 0...nrOfYtiles - 1 {
var cartX = itemX * tileSize
var cartY = itemY * tileSize
var tileView = BoardTile(frame: CGRect(x: cartX, y: cartY, width: tileSize, height: tileSize))
gameBoard.addSubview(tileView)
}
}
现在,等距图块的公式为
var isoX = cartX - cartY
var isoY = (cartX + cartY)/2
但是当我将代码更改为iso变量时,它看起来与应有的样子完全不同。
代码是这样的:
var tileView = BoardTile(frame: CGRect(x: isoX, y: isoY, width: tileSize, height: tileSize))
我一直对此视而不见,似乎没有任何进展。有什么建议吗?