在JAVA中渲染等距图块

问题描述 投票:0回答:1

我有一个精灵表,里面有一个等距精灵,它是一个基本的等距立方体,我想正确渲染,但无法找到方法

尝试了不同的方法来计算 x 和 y 以转换为等距坐标系

public void render() {
    for (int xScreen = 0; xScreen < width; xScreen++) {
        for (int yScreen = 0; yScreen < height; yScreen++) {

            pixels[xScreen + yScreen * width] = Sprite.tile.pixels[(xScreen & 31) + (yScreen & 31) * Sprite.tile.SIZE];
        }
    }
}

}

enter image description here

java canvas rendering screen isometric
1个回答
0
投票

您附加的图像显示了一个 3 维世界(它有 X、Y 和 Z 坐标)。您正在尝试将其渲染到 2D 屏幕,因此 3D 世界中的多个位置将映射到相同的屏幕坐标。

我强烈建议您从 2D 世界开始(删除垂直组件),以便 2D 世界中的每个位置都映射到唯一的屏幕坐标。您可能还想使用一些方格纸来可视化如何进行映射 - 这听起来很愚蠢,但用纸绘制它的行为可以帮助您明确思维。

一旦您能够成功渲染 2D 世界,就可以尝试渲染 3D 世界。注意:计算块为何遮挡其他块(特别是当它们具有非标准形状时)比处理平坦的 2D 世界要困难得多。

© www.soinside.com 2019 - 2024. All rights reserved.