게임 보드를 만들었으므로 조각 (.gif)을 드래그 앤 드롭하고 싶지만 매번 조각을 지워야하기 때문에 보드 전체를 다시 그릴 필요없이이 작업을 수행 할 수있는 방법을 찾을 수 없습니다. 그것은 1 픽셀을 이동시키고 그 아래에있는 것이 무엇이든지 지워집니다 (보드와 다른 조각들). 심지어 가능할까요?전체 캔버스를 다시 그려 넣지 않고 <canvas>의 이미지를 이동 하시겠습니까?
3
A
답변
6
예, 매번 전체 보드를 다시 그려야합니다. 당신이 사용할 수있는
한 기술은 오프 스크린 캔버스 :
var board = document.createElement("canvas");
board.width = width;
board.height = height;
var boardContext = board.getContext("2d");
// rendering code for board
// ...
// now draw board onto main canvas
var context = mainCanvas.getContext("2d");
context.drawImage(board, ...);
보드 캔버스 화면에 표시되지 않습니다,하지만 당신은 그것을 다시 렌더링해야 할 때마다 있도록 메모리에 저장됩니다 매우 빠르게 렌더링됩니다.
관련 문제
- 1. 전체 뷰를 다시 그려 넣지 않고 NSView의 섹션을 업데이트하는 방법
- 2. 웹보기를 다시 그려 넣지 않고 Android 활동 다시 시작
- 3. 지도를 다시 그려 넣지 않고 마커를 다시 그리는 방법은 무엇입니까? google maps
- 4. NSView - 부모 뷰를 다시 그려 넣지 않고 서브 뷰를 다시 그리는 방법
- 5. <canvas> 내용을 나중에 애니메이션 프레임에 다시 그려 넣으시겠습니까?
- 6. SwapBuffers가 다시 그려 짐
- 7. div 안에 이미지를 이동 하시겠습니까?
- 8. ncurses에서 다시 그려 내기
- 9. 전체 캔버스를 회전하고 있습니까?
- 10. Eclipse에서 다시 체크 아웃하지 않고 CVS 저장소를 이동 하시겠습니까?
- 11. C# 나선형 모션으로 이미지를 이동 하시겠습니까?
- 12. glSurfaceView를 유지하는 선형 레이아웃을 제거하고 다시 추가하여 아무 것도 화면에 그려 넣지 않습니다.
- 13. 이미지 맵이나 캔버스를 사용하여 이미지를 마스크 처리 하시겠습니까?
- 14. 다시 게시하지 않고 CodeBehind에서 Anchor로 이동
- 15. 클래스간에 캔버스를 공유 하시겠습니까?
- 16. 안드로이드 캔버스를 다시 그리는 방법
- 17. blob이 전체 필드를로드하지 않고 이미지인지 확인 하시겠습니까?
- 18. 캔버스를 WPF의 다른 캔버스 위에 배치 하시겠습니까?
- 19. 서버를 다시 시작하지 않고 응용 프로그램을 다시 시작 하시겠습니까?
- 20. 전체 이미지를 보려면 스크롤하지 않고 800x600 이미지를 jLabel에 넣는 방법
- 21. 이미지를 다운로드하지 않고 전체 크기로 이미지를 결정하는 방법은 무엇입니까?
- 22. 전체 이미지를 메모리에 할당하지 않고 작은 이미지를 하나로 합치십시오.
- 23. C#의 이미지 이동
- 24. 그래프를 그려 결과 이미지를 볼 수 없습니다.
- 25. Android 캔버스를 동적으로 추가 하시겠습니까?
- 26. 캔버스를 채우기 위해 이미지를 설정하는 방법
- 27. 콜백시 전체 페이지를 다시 작성 하시겠습니까?
- 28. HTML 5 캔버스를 Chrome의 파일에 저장 하시겠습니까?
- 29. "\"을 넣지 않고 바꾸어야하는 유니크 문자
- 30. html5 : 캔버스를 이미지에 복사하고 뒤로
생성 된 그래픽 요소를 대화 형으로 유지하려면 캔버스 대신 SVG를 사용하십시오. – robertc