2013-10-01 225 views
0

嗨產生的,所以我想到了一個主意,到目前爲止,我已經取得了一些進展。我希望能夠改變我的水平地形基礎上的座標。該座標基於您單擊的位置和積分的ArrayList添加選擇。這些點然後由他們的x值排序,然後得出如下:2D「地形」通過使用座標

public Image renderTerrain() throws SlickException { 

    Image image = new Image(MAP_WIDTH, MAP_HEIGHT); 

    Graphics gr = image.getGraphics(); 

    int startx = 0; 
    int starty = 0; 

    for(Point point : points) { 

     starty = (int) point.getY(); 

     int tox = (int) point.getX(); 
     int toy = (int) point.getY(); 


     for(int x = startx; x < tox; x++) { 
      for(int y = starty; y < MAP_HEIGHT; y++) { 
       gr.drawLine(x,y,x,y); 
      } 
     } 

     startx = tox; 

    } 

    gr.flush(); 

    return image; 
} 

這將使像這樣:

enter image description here

但是我想實現的是像這樣。

enter image description here

我需要什麼樣的變化,以實現這一目標做什麼呢?

謝謝。

+0

對我來說,你的代碼似乎完全不能勝任。你似乎可以用'line'其中'fillRect'將是有效的...只是說 – MadProgrammer

+0

是的,我意識到,檢查我的解決方案。 –

回答

0

我在等待答案時回答了我自己的問題。

這裏是我的解決方案:

public Image renderTerrain() throws SlickException { 

    Image image = new Image(MAP_WIDTH, MAP_HEIGHT); 

    Graphics gr = image.getGraphics(); 

    int startx = 0; 
    int starty = (int)points.get(0).getY(); 

    for(Point point : points) { 


     int tox = (int) point.getX(); 
     int toy = (int) point.getY(); 

     gr.setColor(Color.pink);//line 
     gr.drawLine(startx,starty,tox,toy); 
     gr.setColor(Color.green); //height 
     gr.drawLine(tox, toy, tox, MAP_HEIGHT); 
     gr.setColor(Color.yellow); //base 
     gr.drawLine(tox, MAP_HEIGHT-1, startx, MAP_HEIGHT-1); 
     gr.drawLine(tox, MAP_HEIGHT-2, startx, MAP_HEIGHT-2); 

     startx = tox; 
     starty = toy; 
    } 

    gr.flush(); 

    return image; 
} 

結果:

enter image description here