2014-05-19 5 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

Смежные вопросы