나는 중력 시뮬레이터 프로그램 중 하나를 만드는 천문학 프로젝트에서 일하고 있습니다. 나는 천체로 가득 찬 우주를 나타내는 Uni
클래스를 가지고 있습니다 (Body
클래스의 인스턴스).계산에서 정확하게 렌더링을 분리하는 방법
이 Uni
클래스는 자신을 업데이트하고, 새 본문을 추가하고, id
에 의해 본문을 제거 할 수 있습니다. 완전히 수학을 기반으로하며 혼자 일해야합니다.
파이어 게임을 사용하여 시뮬레이션을 실시간으로 선택적으로 표시하는 프로그램을 만들고 MatPlotLib을 사용하여 결과를 분석 할 계획입니다. 그러나 나는 약간의 계산 방법 (Uni
)을 유지하고 렌더링 (Renderer
)을 분리하는 방법에 대해 혼란스러워하고 있습니다.
주요 프로그램 :
나는이처럼 상상- 수입 파이 게임, 초기화를하고
screen
을 만듭니다. - 유니버스를 인스턴스화하고 본문 등으로 채 웁니다 (실제로는
FileManager
, uni의 JSON 사양을 읽음). 그러나uni.update(dt)
#Listen to PyGame events, respond
r.render(screen, uni, ui) #The UI class has a list of UI elements.
렌더러 네브라스카 :
Renderer
가 while run:
루프를 입력 작성 eds를 사용하여 그려야 할 PyGame 서페이스와 이미지의 영구 목록을 유지해야하며 문제가 있습니다. Uni
이나 Body
인스턴스는 PyGame을 인식하지 못하므로 인스턴스를 보관할 수 없습니다.
렌더러는 다른 한편으로는 render
메서드에 대해서만 존재하며, 필요에 따라 PyGame 서페이스를 만들고 파괴 할 수 없습니다 (성능이 좋을 것 같네요).
한 가지 가능한 솔루션이 렌더러를하는 것이다 파이 게임 객체의 사전, 신체의 모든 식별자로 식별이있다. 그런 다음, 그것을 반복하고 사라진 시체를 제거하고 각 프레임에 새 프레임을 추가합니다.
이것이 올바른 방법인가요?