개인 재정 Simplegame으로 애니메이션을 제작하는 법. js HTML5 게임 - 더미

Simplegame으로 애니메이션을 제작하는 법. js HTML5 게임 - 더미

차례:

비디오: 바닐라 JS로 게임 만들기 Vanilla JS | #2 1 2D Context 2024

비디오: 바닐라 JS로 게임 만들기 Vanilla JS | #2 1 2D Context 2024
Anonim

다양한 HTML5 게임 엔진 기능을 모두 단순화하는 라이브러리를 만들 수 있습니다. 라이브러리 사용을 고려하십시오: simpleGame. js. 이 라이브러리는 사용하기 쉽고 정교한 게임 개발을 완벽하게 지원합니다. 시작하려면 실제로 두 개의 오브젝트 만 이해하면됩니다.

  • 장면: 이 오브젝트는 HTML 캔버스 오브젝트로 시작하여 메인 루프를 추가합니다. 장면은 게임을 제어하는 ​​통합 개체입니다.

  • 스프라이트: 이 객체는 화면에서 움직이는 요소입니다. 대부분의 게임 요소는 스프라이트입니다. 각 스프라이트는 하나의 장면에 속해야하지만 원하는만큼의 스프라이트를 가질 수 있습니다. 스프라이트는 이미지를 기반으로합니다.

이 코드는 실제로 보이는 것보다 훨씬 정교합니다. 그것이하는 일은 다음과 같습니다:

  • 페이지에 캔버스를 추가합니다. 회색 사각형은 실제로 페이지에 자동으로 추가 된 캔버스 태그입니다.

  • 게임 루프를 시작합니다. 이 프로그램의 게임 루프는 이미 초당 20 프레임으로 실행됩니다.

  • 스프라이트가 포함되어 있습니다. 볼 이미지는 어떤 방향으로 어떤 속도를 움직일 수있는 능력과 충돌 탐지와 같은 다른 흥미로운 기능을 내장 한 스프라이트입니다.

  • 볼이 움직입니다. 한면을 떠날 때 자동으로 화면의 다른면을 감 쌉니다.

전체 코드 목록은

redBall입니다. html // 움직이는 공이있는 단순한 게임 var scene; var 공; 함수 init () {scene = new Scene (); ball = 새로운 Sprite (장면, "redBall.png", 50, 50); 공. setMoveAngle (180); 공. setSpeed ​​(3); 장면. start ();} // 종료 init 함수 update () {scene. 명확한(); 공. update ();} // end update

기본 HTML5 페이지로 시작하여 게임 환경으로 전환하기위한 몇 가지 기능을 추가합니다.

게임 페이지를 만드는 법

기본 페이지를 작성하여 시작하십시오.

  1. HTML5 페이지로 시작하십시오.

    다른 웹 개발에 사용했던 것과 동일한 도구를 사용할 수 있습니다. 다른 HTML5 문서와 마찬가지로 기본 HTML5 템플릿을 만듭니다.

  2. simpleGame을 가져옵니다. js 라이브러리.

    이 도서관은 웹 사이트에서 무료로 구할 수 있습니다. 태그를 사용하여 라이브러리를 가져옵니다. src 속성을 라이브러리 이름 (simplegame.js)으로 설정합니다.

  3. HTML을 단순하게 유지하십시오.

    많은 돈이 필요하지 않습니다. 게임 엔진은 장면이 포함 된 캔버스를 만듭니다. 제목, 지침 또는 스코어 보드와 같은 기타 도구를 페이지에 넣을 수 있지만 게임 엔진이 대부분의 작업을 수행합니다.

  4. 본문이로드되면 init ()을 호출하십시오.

    몸체가로드 될 때 호출되는 함수를 갖는 것은 매우 일반적입니다. body 태그에 onload = "init ()"을 추가하여 init () 메서드를 호출합니다.

  5. 코드를 포함 할 두 번째 스크립트 태그를 만듭니다.

    사용자 정의 코드를위한 두 번째 스크립트 태그가 있어야합니다. 라이브러리를 가져 오는 태그 뒤에이 값을 추가하십시오.

  6. 스크립트에 두 개의 함수를 추가하십시오.

    모든 simpleGame 프로그램에는 최소한 두 가지 기능이 있습니다. init ()은 시작시 발생하고 update ()는 프레임 당 한 번 발생합니다.

게임 초기화 방법

게임의 초기화 부분은 페이지가로드 될 때 발생합니다. 주로 스프라이트 및 기타 리소스를 설정하는 데 사용됩니다. 코드는 다음과 같습니다.

var scene; var 공; 함수 init () {scene = new Scene (); ball = 새로운 Sprite (장면, "redBall.png", 50, 50); 공. setMoveAngle (180); 공. setSpeed ​​(3);} // end init

대부분의 게임은 유사한 스타일의 초기화를 사용합니다. 게임을 설정하는 방법은 다음과 같습니다.

  1. 장면을 포함 할 변수를 정의하십시오.

    모든 simpleGame 게임에는 적어도 하나의 장면 개체가 있습니다. 어떤 기능 외부의 장면을 정의하여 모든 장면에서 사용할 수 있도록하십시오. 실제로 init () 함수 안에서 장면을 생성 할 것이다.

  2. 각 스프라이트에 대한 변수를 정의하십시오.

    게임의 모든 스프라이트는 글로벌 변수에도 속해야합니다. init () 함수에서 스프라이트를 만들지 만 모든 함수에서 변수를 사용할 수 있도록해야합니다.

  3. init () 함수를 빌드하십시오.

    이 함수는 body onload에 의해 호출됩니다. 페이지가 메모리에로드 된 후에 실행됩니다.

  4. 장면을 만듭니다.

    씬을 빌드하려면 씬 클래스의 인스턴스를 생성하십시오. 당신이 정말로 말하는 것은 "나에게 씬 객체를 만들고이 특정한 인스턴스를 씬이라고 부른다. ' "장면에는 어떤 매개 변수도 필요하지 않습니다.

  5. 볼 정령을 만듭니다.

    볼은 Sprite 인스턴스입니다. 스프라이트를 만들기 위해서는 몇 가지 정보가 필요하다. 장면, 이미지 파일 이름, 너비 및 높이가 필요합니다.

  6. 볼의 이동 각도를 설정합니다.

    볼이 움직이는 각도를 변경할 수 있습니다. 각도는지도 에서처럼도 단위로 측정됩니다.

  7. 볼의 이동 속도를 설정합니다.

    볼의 속도를 결정할 수도 있습니다.

  8. 장면을 시작하십시오.

    모든 것을 다 설정했으면 장면이 시작되도록 알립니다.

게임 애니메이션 업데이트

씬을 시작하면 타이머가 시작됩니다. 초당 20 번, 그것은 update ()라는 페이지에서 함수를 호출 할 것입니다. 그래서, 당신은 그런 기능을 가질 필요가 있습니다. 그리고 당신의 게임을 실행할 수있는 코드가 필요합니다.

update () 함수도 그다지 어렵지 않습니다.

function update () {장면. 명확한(); 공.

이전 화면을 지 웁니다.

  • 첫 번째 비즈니스 순서는 마지막 화면으로 인한 혼란을 정리하는 것입니다. Scene 객체에는 정확히이 목적을 위해 clear () 함수가 있습니다. 이벤트 검사:

  • 일반적으로 사용자 입력, 서로 충돌하는 스프라이트, 화면을 벗어나는 스프라이트 등의 이벤트를 확인합니다.이 간단한 애니메이션의 유일한 이벤트는 화면을 떠나는 스프라이트이며,이 동작과 관련된 동작은 자동화되었습니다. 각 스프라이트 업데이트:

  • 화면 업데이트의 마지막 부분은 스프라이트를 업데이트하는 것입니다. 스프라이트를 업데이트하면 새로운 위치에 그려집니다. 화면을 지우지 않으면 어떻게됩니까? 모든 스프라이트 모션은 캔버스에 그려지며 움직이는 볼이 아닌 큰 얼룩처럼 보입니다.

Simplegame으로 애니메이션을 제작하는 법. js HTML5 게임 - 더미

편집자의 선택

Photoshop CS6의 이미지에서 원하지 않는 요소를 제거하는 방법 - 더미

Photoshop CS6의 이미지에서 원하지 않는 요소를 제거하는 방법 - 더미

Adobe Photoshop Creative Suite 6에서 원하지 않는 요소 (이 경우 사람)를 이미지에서 완벽하게 제거하는 단계입니다.이 기술을 처음 시도 할 때는 원하는 요소에 연결되지 않은 요소가있는 이미지로 시작하십시오 이미지를 유지하십시오. 무언가가 포함 된 이미지를 엽니 다.

Photoshop CS6에서 선택 영역을 알파 채널로 저장하는 방법 - 더미

Photoshop CS6에서 선택 영역을 알파 채널로 저장하는 방법 - 더미

중 하나 Photoshop CS6의 알파 채널에 대한 가장 큰 장점은 이미지를 저장 한 다음 시간과 시간을 다시 검색 할 수 있다는 것입니다. 이렇게하면 선택 영역을 만드는 데 많은 시간과 노력이 쏟은 경우 특히 편리 할 수 ​​있습니다. 요소를 다시 선택하려면 휠을 다시 만들어야합니다 ...

Photoshop 이미지 - 인형

Photoshop 이미지 - 인형

암실에서 디지털로 이동하면 소음을 줄이는 방법 영화 및 가공 비용의 달러화 (가능한 환경 오염의 감소는 말할 것도 없음)를 제공하지만 사진 및 예술 사업에 새로운 도전 과제를 추가했습니다. 디지털 사진이 제시하는 문제 중 가장 중요한 것은 노이즈입니다. ...

편집자의 선택

Adobe Photoshop Elements에서 디지털 사진의 레이어 삭제하기 -

Adobe Photoshop Elements에서 디지털 사진의 레이어 삭제하기 -

디지털 사진이 보이면 해당 사진에서 레이어를 삭제할 수 있습니다. 레이어를 삭제하면 해당 레이어의 내용이 이미지 파일에서 제거됩니다. Adobe Photoshop Elements를 사용하여 그림에서 레이어를 삭제합니다.

Adobe Photoshop Elements로 디지털 사진의 레이어 편집하기 - 더미

Adobe Photoshop Elements로 디지털 사진의 레이어 편집하기 - 더미

Adobe Photoshop Elements에서 특정 레이어를 변경하여 이미지의 나머지 부분을 변경하지 않고 이미지를 편집 할 수 있습니다. 편집하려는 부분이 편집하려는 레이어에 있는지 확인하기 만하면됩니다.

디지털 사진 편집 - 인형

디지털 사진 편집 - 인형

잠시 동안 디지털 카메라로 사진을 찍었 으면 항상 결과에 감격하고 "이 사진을 구원받을 수 있습니까? "그 대답은"그렇습니다. "다음 표의 트릭을 사용하여 좋아하는 사진 편집기에서 디지털 사진을 편집하십시오. 기능 설명 권장 크기 조정 ...

편집자의 선택

WordPerfect Office 2002에서 작업 영역 사용자 지정 - 더미

WordPerfect Office 2002에서 작업 영역 사용자 지정 - 더미

WordPerfect 인터페이스에 대한 많은 것을 제어 할 수 있습니다 프로그램이 어떻게 보이고 행동하는지에 대한 용어). 모든 옵션을 훑어 보는 데 몇 시간을 소비 할 수 있지만 더 나은 일을해야합니다. 아래는 대부분의 사람들이 WordPerfect에서 다루기 쉬운 작업을위한 옵션입니다. 옵션 본부 : 설정 ...

의 그래픽 작업 - 그래픽을 사용하기 전에 WordPerfect 11 - Dummy

의 그래픽 작업 - 그래픽을 사용하기 전에 WordPerfect 11 - Dummy

기본에서 그래픽 작업 상자. 모든 상자에는 테두리와 배경이 있습니다. 두 가지 방법으로 상자와 상자 안에있는 그림을 선택할 수 있습니다. 텍스트를 입력하고 상자를 클릭하면 검은 색 핸들과 테두리가 생기지 않습니다.