2013-07-21 5 views
2

예를 들어 cocos2d에서 촛불을 시뮬레이트하는 것이 가능합니까? 그래서 그 장면은 검은 색이어서 촛불이 나타날 때 그것은 현실적인 방법으로 방을 비 춥니 다.Room Up Cocos2d

가능한 경우 어떻게 그 효과를 얻을 수 있습니까? 모든 리디렉션, 안내를 환영합니다.

감사합니다.

빛의 반사 알고리즘은 사용하지 않기를 바랍니다. 플레이어 생활이 방을 보는 능력이있는 게임을 위해서 필요한 것입니다.

답변

1

당신은 레이 캐스팅을 체크 아웃해야합니다. Box2d를 사용하도록 Cocos2d를 설정하면, Box2d의 raycasting 방법을 사용하여이 효과를 얻을 수 있습니다. 당신은 당신의 방 box2d 강체에 벽을 만들 수 있으며, 주위에 원의 점에 촛불 원점에서 레이 캐스트합니다. 광선 캐스팅이 벽과 교차하는 경우 교차점의 위치를 ​​표시하십시오. 마지막으로 모든 레이 캐스트 교차점에서 생성 된 다각형 내부의 빛으로이 영역을 채울 수 있습니다.

+0

레이크 스톤 교차로에서 거리를 얻을 수 있는지 알고 계십니까? 빛을 시뮬 레이팅하는 데 필요한 것이기 때문에 멀리있는 물체는 가까이있는 물체만큼 밝아서는 안됩니다. – chrs

+0

@Chrene [raywendelich.com] (http://www.raywenderlich.com/4653/intermediate-box2d-physics-forces-ray-casts-and-sensors)에서 Box2d 레이캐스팅에 대한 훌륭한 자습서를 읽을 수 있습니다. 광선 캐스팅 콜백은 ReportFixture 메서드에 몇 가지 정보 (교차점 ** 점 ** b2Vec2 포함)를 저장합니다. 레이 캐스트의 원점을 알고있는 경우 원점과이 교차점 사이의 거리를 쉽게 계산할 수 있습니다. – Benolds