2012-12-06 7 views
1

자바 타일 게임 (타일 크기는 16px) 레벨 스크롤링입니다. 지금 조명 시스템을 다루고 있습니다.바둑판 모양의 빛 차단

visMap = new int[level.getWidth() * level.getHeight()]; 

    int lighted = 0; 

    for (int x = 0; x < level.getWidth(); x++) { 
     for (int y = 0; y < level.getHeight(); y++) { 
      double xd = (this.x >> 4) - x; 
      double yd = (this.y >> 4) - y; 

      double distance = Math.sqrt(xd * xd + yd * yd); 

      double p = power * 1.0; 
      double bright = p - distance; 

      visMap[x + y * level.getWidth()] = (int) (bright * power); 
     } 
    } 

그리고 지금은처럼 (블록이 어떻게 든 빛을 차단하기 위해 노력하고있어 : 나는 (노란색 블록 및 타일) 각 빛이 코드 (그림과 같이) 빛 그라데이션을 계산 실생활). 좋은 방법이 있습니까? 사전에 감사의, Zaplik

픽쳐 : 재귀 click

답변

0

확산 빛. 각 재귀 수준에 따라 적절한 양의 빛 강도를 줄입니다. 빛이 움직이는 방향을 계속 추적하십시오. 장애물에 부딪혔다면 재귀 지점을 멈추십시오.