2

我正在尝试制作游戏。它将采用 4x 游戏风格。我有一个六边形网格。我想用它作为棋盘,玩地图,每个六边形都是一个位置。

六边形可以有单位,行星或什么都没有。但我遇到的问题是如何制作可以在地图上滚动的相机。我从来没有做过这样的事情,我找不到任何东西。大多数事情都指向我 XNA。

我希望有人能用大字句告诉我原理,或者让我参考一些带有指南或解释的链接。

4

1 回答 1

0

通常,如果您有一个只想绘制一部分的网格,我会通过将偏移存储到网格中来实现相机,并在该偏移处开始绘制。如果您想一次滚动 1 个图块,您可以存储一个图块偏移量,这很容易。如果您想滚动到单个像素位置,则存储一个像素偏移量,并从中计算您需要绘制的第一个图块。

for(int y = yPixelOffset / tileHeight; y < displayHeight; y++) {
    for(int x = xPixelOffset / tileWidth; x < displayWidth; x++) {
        // draw tile[x,y] at (displayLeft + x * tileWidth - xPixelOffset,
        //    displayTop + y * tileHeight - yPixelOffset)
    }
}

我通常不处理六边形网格,但我认为这只涉及将第二行偏移半个瓷砖宽度。

于 2013-09-23T15:38:20.350 回答