我正在尝试制作游戏。它将采用 4x 游戏风格。我有一个六边形网格。我想用它作为棋盘,玩地图,每个六边形都是一个位置。
六边形可以有单位,行星或什么都没有。但我遇到的问题是如何制作可以在地图上滚动的相机。我从来没有做过这样的事情,我找不到任何东西。大多数事情都指向我 XNA。
我希望有人能用大字句告诉我原理,或者让我参考一些带有指南或解释的链接。
通常,如果您有一个只想绘制一部分的网格,我会通过将偏移存储到网格中来实现相机,并在该偏移处开始绘制。如果您想一次滚动 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)
}
}
我通常不处理六边形网格,但我认为这只涉及将第二行偏移半个瓷砖宽度。