광원을 지원하고 싶은 타일 기반 게임을 작성하고 있습니다. 하지만 알고리즘이 너무 약하므로 도움을 청합니다.타일 기반 게임에서 어떤 타일이 켜져 있는지 계산 ("raytracing")
상황은 다음과 같습니다. 타일 기반지도 (2D 배열로 유지)가 있으며 하나의 광원과 여러 항목이 주위에 서 있습니다. 어떤 타일이 광원에 의해 밝혀 졌는지 그리고 어떤 그림자에 있는지를 계산하고 싶습니다.
대략 보이는 모습을 시각적으로 보여줍니다. L은 광원이고, X는 빛을 차단하는 항목이고, 0은 점등 된 타일이고, -s는 그림자의 타일입니다.
0 0 0 0 0 0 - - 0
0 0 0 0 0 0 - 0 0
0 0 0 0 0 X 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 L 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 X X X X 0 0
0 0 0 - - - - - 0
0 0 - - - - - - -
분수 시스템으로 인해 부분적으로 가려진 것에 타일 반 그림자에있을 수 물론,의, 더 나은 것입니다. 알고리즘은 완벽 할 필요는 없습니다. 분명히 잘못하고 합리적으로 빠르지는 않습니다.
(물론, 거기에 여러 광원이 될,하지만 그건 단지 루프의 것입니다.)
모든 응시자?
답장을 보내 주셔서 감사합니다. 나는 세부적으로 그들을 통과 할 것이고 집에 도착하면 알고리즘을 구현/게시 할 것이다. – Zarkonnen
이것에 대해 더 진행해 보셨습니까? 나는 당신이 어떻게 지내는지 듣고 싶어합니다. –