如何将笛卡尔瓷砖变成等距瓷砖?

时间:2019-04-11 07:15:30

标签: swift xcode tile isometric

我正在尝试从笛卡尔(正方形)瓷砖创建等距瓷砖。我有方程式,但似乎无法正确理解。

此代码生成一个笛卡尔正方形网格。

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)
        }
    }

enter image description here

现在,等距图块的公式为

            var isoX = cartX - cartY
            var isoY = (cartX + cartY)/2

此处参考:https://gamedevelopment.tutsplus.com/tutorials/creating-isometric-worlds-a-primer-for-game-developers--gamedev-6511

但是当我将代码更改为iso变量时,它看起来与应有的样子完全不同。

enter image description here

代码是这样的:

var tileView = BoardTile(frame: CGRect(x: isoX, y: isoY, width: tileSize, height: tileSize))

我一直对此视而不见,似乎没有任何进展。有什么建议吗?

0 个答案:

没有答案