2012-11-14 2 views
0

Canvas Games를 만들기 위해 Google의 GWT 용 게임 개발 API를 만들려고하고 있는데 사전 문제와 관련하여 질문이 있습니다.HTML5의 캔버스로 사전 렌더링하기위한 가장 좋은 방법은 무엇입니까?

첫째 : 나는 그것의 데이터를 제거하는 removeChild() 또는 RootPanel.Remove() (GWT 포함), 또는 올바른 방법을 사용 후, 메모리에 머물거나하지 않을 경우 브라우저/자바 스크립트/GWT는 삭제 된 캔버스를 관리하는 방법 완전히 확실하지 않다 기억으로부터.

그래서 내가 얻은 해결책은 미리 렌더링 팔레트로 여러 숨겨진 캔버스를 사용하고 drawImage() 매직을 사용하여 기본 컨텍스트에서 미리 렌더링 된 이미지를 뛰어 다니고 삽입, 제거, 빈 공간 등의 문제가 있습니다.

이 방법이 최선의 해결책입니까? 또는 미리 렌더링 된 모든 작은 이미지와 텍스처에 하나의 작은 캔버스를 사용해야합니까? 아니면 전혀 다른 것을 시도해야합니까?

미리 감사드립니다. 내 철자를 유감스럽게 생각합니다.

답변

1

캔버스를 사용하여 항목을 미리 렌더링하는 것이 좋은 생각이지만 항상 최선의 선택은 아닙니다. 항목이 복잡하고 (그래디언트, 그림자 및 시각적 효과가있는 경우) 그렇 으면 좋을 것입니다. 하지만 항목이 단순하면 (이미지, 폴리곤, 단순한 베 지어 커브, ...), 프레임 속도는 증가하지 않지만 drawImage 때문에 감소 할 수 있습니다. 그러면 실시간으로 렌더링하는 것이 좋습니다.

내 실험을 통해 몇 가지 작은 캔버스 (메모리가 부족할 수 있음)를 사용하여 성능이 저하되지 않지만 큰 캔버스 (개체 지향적 인 장면)보다 관리하기가 쉽습니다. 항목이 때때로 변경되면 임시 캔버스의 크기를 쉽게 관리 할 수 ​​있습니다.

희망 도움말.

관련 문제