Html5 Canvas 이미지의 그래픽 코드에 대한 자세한 설명(2)
이전 글에서는 canvas에서 제공하는 기본 이미지 API를 주로 다루었습니다.
이 글에서는 Canvas를 사용합니다. 몇 가지 예를 구현하기 위한 이미지 API 및 변환 제공: 간단한 자동차 이동, 간단한 게임 지도 , 이미지 번역 및 확대/축소
그림:
|
그림 2: 지도--[32*32]*4--map.png | ||||
![]() |
![]() |
Canvas에서의 당사 위치(50,50) 방법 탱크의 처음 1/8 부분(첫 번째 탱크)을 표시하시겠습니까? 이미지 API의 일부를 사용합니다.
1 |
|
현재 탱크를 90도 회전하는 방법은 무엇입니까?
캔버스의 회전 작업은 모양, 텍스트, 이미지 모두 동일합니다.
모두 캔버스의 현재 상태를 스택에 푸시해야 합니다: context.save();
그런 다음 변환을 시작합니다: context.setTransform(1, 0,0,1,0 ,0);
탱크 자체를 중심으로 90도 회전하려고 하므로 원점을 탱크 중심으로 변환해야 합니다. ;
탱크의 위치(x, y)는 (50, 50)이고 크기(w, h)는 (32, 32)이므로 중심점은 다음과 같습니다. (x+w/2, y+h/2);
번역 출처: context.translate(50 + 16, 50 + 16);
회전: context.rotate(90*Math.PI /180);
참고: 원래 그림은 (50,50) 위치에 그려질 예정이었습니다. 원점이 변환된 후 위치 좌표는 (-16,-16 );
이미지 그리기: context.drawImage(tanks, 0, 0, 32, 32 , -16, -16, 32, 32);
아아앙바퀴 회전 애니메이션
탱크 총 8개의 탱크가 있고 각 이미지의 크기는 (32,32)입니다.
두 번째 탱크를 (50) 위치에 표시하려면 어떻게 해야 할까요? ,50)?
두 번째: context.drawImage(tanks, 32*(2-1), 0, 32, 32, -16, -16, 32, 32);
세 번째: context.drawImage(tanks, 32*(3-1), 0, 32, 32, -16, -16, 32, 32);
그리고 8번째 항목: context.drawImage(tanks, 32*(8-1), 0, 32, 32, -16, -16, 32, 32);
각 탱크 그림의 차이점은 바퀴 부분에 있습니다. 타이머 100ms를 사용하여 1~8개의 탱크 그림을 차례로 표시하면 탱크 바퀴 회전 애니메이션이 표시됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
|
탱크의 수평 이동 효과는 구현하기 쉽습니다. 애니메이션의 각 프레임을 매번 변경하면 됩니다. 디스플레이의 X 위치는 TANK 사진은 괜찮습니다.
FCUNTION DRAWSCREEN () {x = x+1 ...... ! !
320*320 크기의 캔버스를 정의하고 이미지 맵을 사용하여 간단한 게임 맵을 그립니다. 🎜>그림 지도에는 4개의 작은 그림이 있으며 모두 32*32입니다. 주요 배경, 장애물, 위쪽 및 아래쪽 벽돌, 왼쪽 및 오른쪽 벽돌; 모두, 캔버스를 10*10개의 작은 그리드로 나누고 각 작은 그리드의 크기는 32*32로 그림과 정확히 같은 크기입니다.
그런 다음 정의합니다. a 2차원 배열 은 각 작은 그리드에 표시할 이미지의 인덱스를 저장하는 데 사용됩니다.
그런 다음 2계층 루프를 사용합니다. 이미지를 그리면 지도가 나옵니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
|
다른 Image Api 애플리케이션 공유:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
|
该代码中,有一个图片"pan.jpg",大家随便找一个比较大的图就可以;
快运行,看看效果吧!
위 내용은 Html5 Canvas 이미지의 그래픽 코드에 대한 자세한 설명(2)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

HTML의 테이블 테두리 안내. 여기에서는 HTML의 테이블 테두리 예제를 사용하여 테이블 테두리를 정의하는 여러 가지 방법을 논의합니다.

HTML의 Nested Table에 대한 안내입니다. 여기에서는 각 예와 함께 테이블 내에 테이블을 만드는 방법을 설명합니다.

HTML 여백-왼쪽 안내. 여기에서는 HTML margin-left에 대한 간략한 개요와 코드 구현과 함께 예제를 논의합니다.

HTML 테이블 레이아웃 안내. 여기에서는 HTML 테이블 레이아웃의 값에 대해 예제 및 출력 n 세부 사항과 함께 논의합니다.

HTML 입력 자리 표시자 안내. 여기서는 코드 및 출력과 함께 HTML 입력 자리 표시자의 예를 논의합니다.

HTML 순서 목록에 대한 안내입니다. 여기서는 HTML Ordered 목록 및 유형에 대한 소개와 각각의 예에 대해서도 설명합니다.

HTML onclick 버튼에 대한 안내입니다. 여기에서는 각각의 소개, 작업, 예제 및 다양한 이벤트의 onclick 이벤트에 대해 설명합니다.

HTML에서 텍스트 이동 안내. 여기서는 Marquee 태그가 구문과 함께 작동하는 방식과 구현할 예제에 대해 소개합니다.
