2011-11-21 8 views
0

자바 게임에 대해 isometric지도를 만들려고하지만이 방법이 없습니다. 아이소 메트릭 맵의 각 다각형에 JLabel을 추가해야 각 위치에 paint()을 사용할 수 있습니다. 어떻게 그릴 각 다각형에 JLabel을 추가 할 수 있습니까? 나는 그것을 얻을 수 없다. 나는 이미이처럼 내 내 등각지도의 각 위치를 그리는 알고리즘, 뭔가를 :다각형 안에 JLabel을 추가하는 방법은 무엇입니까?

//L is the width of the map (that will be the framw width) 
//N will be the number of COLUMN, like N*N will be the total number of positions. 

//The first position (a,b) that will be 

a=L/(2*N+1) 
b=a . tan(30º 

for (int y = 0; y < N; y++) { 
    if (y % 2 == 0) { // Se y é PAR 
     for (int x = 0; x < N; x++) { 
      Polygon p = new Polygon(); 
      p.addPoint(x * a * 2 + a, y * b); 
      p.addPoint(x * a * 2 + 2 * a, y * b + b); 
      p.addPoint(x * a * 2 + a, y * b + 2 * b); 
      p.addPoint(x * a * 2, y * b + b); 
      g.drawPolygon(p); 
     } 
    } else { // if Y is odd 
    for (int x = 0; x < N; x++) { 
     Polygon p = new Polygon(); 
     p.addPoint(x * a * 2 + 2 * a, y * b); 
     p.addPoint(x * a * 2 + 3 * a, y * b + b); 
     p.addPoint(x * a * 2 + 2 * a, y * b + 2 * b); 
     p.addPoint(x * a * 2 + a, y * b + b); 
     g.drawPolygon(p); 
    } 
    } 
} 

감사를 많이

+0

JLabel이 다각형 안에 있어야합니까? 추가시 문제가 정확히 무엇입니까? 또한 다각형을 그리는 것은 무엇입니까? –

+0

다각형의 페인팅과 프레임 크기가 다각형에 미치는 영향을 보여주는 SSCCE를 게시하십시오. – camickr

답변

2

레이아웃 및 그리기 정말 아주 다른 사전들에. 레이아웃은 정확한 위치 설정이 아닙니다. 원하는 위치에서 Graphics 객체의 drawChars를 사용하거나 Graphics2D 객체로 캐스팅하고 drawString을 사용할 수 있습니다.

+0

일부 위치에서 내 게임의 히어로를 나타내는 이미지가 있기 때문에 아이소 메트릭 맵의 각 위치에 레이블을 사용하고 싶습니다. 어떤 경우에는 레이블에 영웅이있을 것입니다. 또 다른 경우에는 건물이 생깁니다. 그리고 각 위치에 레이블을 사용하여 조작하고 각 레이블에 대해 메소드 페인트를 사용합니다. UR 도움 주셔서 감사합니다, 나는 희망을 이해해주세요 :) – TiagoM

관련 문제