2014-05-19 24 views
1

我嘗試創建六邊形並將它們放置在opengl窗口中。我想用它們作爲平鋪地圖。我當前的代碼如下所示:在Slick2D中定位多邊形

private Polygon generateTile(){ 
     Polygon poly = new Polygon(); 
     for(int i = 0; i < 6; ++i) { 
      poly.addPoint((float)Math.sin(i/6.0*2*Math.PI), 
        (float)Math.cos(i/6.0*2*Math.PI)); 
     } 
     return poly; 
    } 

private void generateTiles(){ 
     Shape s; 
     Polygon p = generateTile(); 
     for (int i = 0; i <= 2; i++) { 
      for (int j = 0; j <=10; j++) { 
       s=p.transform(Transform.createScaleTransform(Constants.TILE_SIZE, Constants.TILE_SIZE)); 
       if (i%2==0) { 
        s.setLocation(s.getMaxX()*j*2, s.getMaxY()*i*2); 
       } else { 
        s.setLocation(s.getMaxX()*j*2+Constants.TILE_SIZE, s.getMaxY()*i*2); 
       } 

       tiles.add(s); 

      } 
     } 

窗口:

enter image description here

的問題是,第2排應在第1行中

回答

2

實際瓷磚的偏移整合不是它的大小。

有這個here

Hex Grid dimensions

一個偉大的文章