java - 渲染等距网格

标签 java swing isometric

我正在为等距游戏制作 map 编辑器,但我在渲染等距引导网格(显示对象放置位置的网格)上有点卡住了。也就是说,我需要以这样的方式在 Graphics 对象上绘制线条,以形成一个具有可变宽度和高度的单元格的网格。我该怎么做才能做到这一点?

到目前为止我有:

//The number of cells in each direction
int nv=h/cellh;
int nh=w/cellw;
for(int i=1;i<=nv;++i){
    g.drawLine(0,i*cellh,i*cellh*2,0);
}

但这只是绘制从左侧开始的左下角到右上角的线条。

最佳答案

这将如您所愿地工作:

public void paintComponent(Graphics g) {
    super.paintComponent(g);
    g.setColor(Color.GREEN);
    int width = getWidth();
    int height = getHeight();
    int sizeW = 50;
    int sizeH = 50;
    int countW = width / sizeW;
    int countH = height / sizeH;

    for (int i = 0; i <= countW + countH; i++) {
        g.drawLine(0, i * sizeH, i * sizeH, 0);
        g.drawLine(width - i * sizeW, 0, width, i * sizeW);
    }
}

关于java - 渲染等距网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12434136/

相关文章:

java - 单击时多行选择

java - 从 Sprite Sheet Java 读取图像

java - 除非 JFrame.validate(),否则 JPanel JComponent 不会重新绘制;将组件添加到可见框架后调用

ios - 计算等距网格上矩形内包含的单元格

math - 等距投影 : What's wrong with my math?

java - @android :id is not recognized by eclipse

java - 从 GUI 保存用户设置

java - 类似于 Java 语言的 BeJeweled 游戏

java - 具有混合大小写字符且 DocumentFilter 设置为大写的 FormattedTextField

python - 在 Pygame 中获取等距平铺鼠标选择