개인 재정 HTML5 게임에 다중 상태 애니메이션 만들기 하는 방법

HTML5 게임에 다중 상태 애니메이션 만들기 하는 방법

비디오: 파이썬 게임 만들기 Creating a Python Game with pygame (한글자막) 2025

비디오: 파이썬 게임 만들기 Creating a Python Game with pygame (한글자막) 2025
Anonim

이 모든 동작을 HTML5 게임에서 계속 진행하면서 정교한 여러 애니메이션을 원할 것입니다. 언제든지 스프라이트와 연결된 이미지를 변경하기 위해 changeImage () 또는 setImage () 함수 (두 가지 이름이 같습니다)를 사용할 수 있습니다. 때로는 훨씬 정교한 애니메이션이 필요합니다. walkAnim을 한번보세요. html.

이미지 교환 작업이 많이 진행됩니다. 워킹 애니메이션은 실제로 워킹의 환상을주기 위해 빠르게 바꿔 놓은 일련의 8 가지 이미지입니다. 4 가지 애니메이션 (각 추기경 방향마다 하나씩)이 있습니다. 총 32 개의 이미지가 있습니다. 그러나 코드를 살펴보면 문자 스프라이트에는 하나의 이미지 만 포함되어 있음을 알 수 있습니다.

이 이미지는 합성 애니메이션입니다. 각 행은 방향을 나타내며, 각 행에는 반복 될 일련의 이미지 또는 일련의 이미지가 포함됩니다.

rpg_sprite_walk. png 이미지는 Franck Dupont에 의해 작성되었습니다. 그는 관대하게이 이미지를 OpenGameArt에 게시했습니다. org 사이트에서 그는 "Arikel"로 알려져 있습니다. "그는 특별 저작물 인"저작자 표시 - 공유 "와 같은 저작물을 발표했습니다. "이것은 사람들이 원 저작자를 기인하는 한 무료로 작품을 사용하거나 리믹스 할 수 있음을 의미합니다.

배경 이미지는 Hyptosis라는 저자가 작성한 것으로, 같은 사이트에서 공개 도메인으로 이미지를 공개했습니다. Franck 및 Hyptosis와 같은 재능 있고 사려 깊은 기고자는 번성하는 창조적 인 지역 사회의 열쇠입니다. 오픈 게임 아트 사이트를 통해 게임에서 사용하기에 더 좋은 예술 작품을 자유롭게 구경 할 수 있지만 필자가 가치있는대로 작가에게 고맙고 속성을 부여해야합니다.

단순 게임. js 라이브러리에는 멀티 이미지 애니메이션을 아주 쉽게 만들 수있는 기능이 포함되어 있습니다. walkAnim 코드를 살펴보십시오. 어떻게 작동하는지 보려면 html:

walkAnim. html var 게임; var 배경; var 문자; 함수 init () {game = new Scene (); background = new Sprite (게임, "rpgMap.png", 800, 600); 배경. setSpeed ​​(0, 0); 배경. setPosition (400, 300); character = new Sprite (게임, "rpg_sprite_walk.png", 192, 128); 문자. loadAnimation (192, 128, 24, 32); 문자. generateAnimationCycles (); 문자. renameCycles (new Array ("down", "up", "left", "right"))); 문자. setAnimationSpeed ​​(500); // 일시 정지 된 문자를 시작합니다. setPosition (440, 380); 캐릭터. setSpeed ​​(0); 문자. pauseAnimation (); 문자. setCurrentCycle ("down"); 게임.start ();} // init 함수를 끝내십시오. update () {game. 명확한(); checkKeys (); 배경. 최신 정보(); 캐릭터. (keyDown [K_LEFT]) { 문자입니다. setSpeed ​​(1); 문자. playAnimation () 문자. setMoveAngle (270); 문자. setCurrentCycle ("left"); } if (keysDown [K_RIGHT]) {문자. setSpeed ​​(1); 캐릭터. playAnimation () 문자. setMoveAngle (90); 캐릭터. setCurrentCycle ("right");} if (keysDown [K_UP]) {문자. setSpeed ​​(1); 캐릭터. playAnimation () 문자. setMoveAngle (0); 캐릭터. setCurrentCycle ("up");} if (keysDown [K_DOWN]) {문자. setSpeed ​​(1); 캐릭터. playAnimation () 문자. setMoveAngle (180); 캐릭터. setCurrentCycle ("down");} if (keysDown [K_SPACE]) { 문자입니다. setSpeed ​​(0); 문자. pauseAnimation (); 문자. setCurrentCycle ("down"); }}

애니메이션을 제작하려면 몇 가지 새로운 단계를 거쳐야하지만, 그 결과는 그만한 가치가 있습니다.

  1. 애니메이션 이미지를 얻습니다.

    이미지를 직접 만들거나 OpenGameArt와 같은 우수한 리소스를 볼 수 있습니다. org는 다른 사람들이 한 일을 찾습니다. 물론, 당신은 다른 사람의 일을 존중할 책임이 있지만, 오늘날 매우 관대 한 면허에서 가능한 훌륭한 일이 있습니다. 이미지가 행과 열로 구성되고 각 하위 이미지가 정확히 같은 크기인지 확인하십시오.

    이미지를 올바른 형식으로 만들고 각 하위 이미지의 크기를 알 수 있도록 이미지 편집기를 사용해야 할 수도 있습니다.

  2. 애니메이션 이미지를 스프라이트에 붙입니다.

    전체 이미지를 스프라이트에 첨부 할 수 있지만, 한 번에 작은 부분 만 표시하면됩니다. 이것은 많은 이미지로 작업하는 것보다 쉽고 더 효율적입니다.

  3. loadAnimation () 메소드로 애니메이션 객체를 생성합니다.

    객체의 loadAnimation () 메소드를 호출하면 애니메이션 관리에 도움이되는 애니메이션 도구가 생성됩니다. 처음 두 매개 변수는 전체 이미지의 크기 (너비 및 높이)이고 두 번째 매개 변수는 각 하위 이미지의 너비와 높이입니다. 이 값이 잘못되면 애니메이션이 스크롤되는 것처럼 보입니다. 이 값을 올바르게 얻을 때까지 계속 플레이하십시오:

    . loadAnimation (192, 128, 24, 32);
    
  4. 애니메이션주기를 만듭니다.

    각 행은 애니메이션주기로 바뀝니다. 기본 버전 (매개 변수없이)은 대부분의 상황에서 정상적으로 작동합니다. 이 도구의 고급 사용법은

    문자를 참조하십시오. generateAnimationCycles ();
    
  5. 사이클의 이름을 바꿉니다.

    buildAnimationCycles () 명령으로 생성 된 애니메이션에는 기본 이름이 있지만,보다 의미있는 이름을 붙이는 것이 좋습니다. 각 행의 의미를 나타내는 이름을 가진 배열을 추가하십시오:

    문자. renameCycles (new Array ("down", "up", "left", "right")));
    
  6. 애니메이션 속도를 설정합니다.

    애니메이션 속도는 애니메이션 실행 속도를 나타냅니다. 대부분의 어플리케이션에서는 500의 값이 적당하지만이 값을 조정하여 캐릭터의 도보 사이클이 실제로 캐릭터를 추진하는 것처럼 보입니다 (

    문자).setAnimationSpeed ​​(500);
    
  7. 표시 할 사이클을 설정하십시오.

    setCurrentCycle () 메서드를 사용하면 renameAnimationCycles () 단계에서 지정한 이름 중 하나 인

    문자를 사용하여 사이클을 선택할 수 있습니다. setCurrentCycle ("down");
    
  8. pauseAnimation () 명령을 사용하여 애니메이션을 일시 중지합니다.

    pauseAnimation () 명령은 애니메이션을 일시적으로 정지시킵니다.

  9. playAnimation ()을 사용하여 애니메이션을 시작합니다.

    이 방법은 현재 애니메이션주기를 계속 반복합니다.

알 수 있듯이, 애니메이션은 게임에 엄청난 재미를 더하고 레퍼토리에 롤 플레잉 게임의 전체 영역을 열어줍니다.

HTML5 게임에 다중 상태 애니메이션 만들기 하는 방법

편집자의 선택

여성 건강 : 케겔 운동 방법 - 인형

여성 건강 : 케겔 운동 방법 - 인형

케겔 운동은 성기의 근육을 타겟으로합니다. 이 근육은 출산 중에 발생하는 스트레칭으로 인해 종종 약해지지만, 임신 한 적이없는 여성을 포함하여 어떤 여성이라도 적절한 케겔 (Kegel)을하는 법을 아는 것이 도움이 될 수 있습니다. 본질적으로 케겔 (Kegel)은 생식기에 좋은 운동을 제공하여 ...

폐경기 동안 기대할 사항 - 인형

폐경기 동안 기대할 사항 - 인형

폐경은 모든 여성의 삶의 사실입니다. 다른 연령대의 여러 단계의 증상으로 진행됩니다. 폐경의 결과로 여성은 알을 낳지 않고 생리를 멈추지 만 여성 호르몬, 에스트로겐 및 호르몬의 생성을 감소시킵니다.

여성 건강 : 요로 감염을 예방하는 방법 - 인형

여성 건강 : 요로 감염을 예방하는 방법 - 인형

요로 감염 (UTI)은 상당히 여성의 공통점. 통증이있는 ​​배뇨 나 잦은 소변과 같은 요로 감염의 증상을 발견하면 치료를받는 것이 중요합니다. UTI 치료는 일반적으로 항생제의 빠른 과정이지만 전문가의 도움을받는 데는 지체가 있으면 치료 시간이 길어질 수 있습니다. ...

편집자의 선택

Salesforce 조직에서 깨끗한 데이터를 유지 관리하는 많은 회사에서 Salesforce 조직의 깨끗한 데이터 유지 보수

Salesforce 조직에서 깨끗한 데이터를 유지 관리하는 많은 회사에서 Salesforce 조직의 깨끗한 데이터 유지 보수

많은 사람들을 위해 일하는 것과 비슷합니다. 많은 기업들이 혜택을 인식하고 있음에도 불구하고 습관을 버리는 것에 저항합니다. 사람들은 깨끗한 데이터가 시스템에 들어갈 수 있도록 시간을 할애하고 싶지 않지만 같은 사람들은 빨리 작업 할 수 있습니다 ...

Salesforce에서 캠페인을 만드는 방법 - Professional, Enterprise 또는 Unlimited Edition 사용자를 위해 제공되는 인형

Salesforce에서 캠페인을 만드는 방법 - Professional, Enterprise 또는 Unlimited Edition 사용자를 위해 제공되는 인형

Salesforce의 모듈은 마케팅 프로그램을 관리, 추적 및 측정하는 데 사용하는 일련의 도구입니다. 캠페인 레코드는 캠페인 레코드입니다. 수동 또는 자동으로 리드, 연락처 및 / 또는 기회 레코드에 링크하여 캠페인에 대한 실제 메트릭을 제공 할 수 있습니다.

편집자의 선택

표시 관련 기사 Joomla 웹 사이트 - 인형

표시 관련 기사 Joomla 웹 사이트 - 인형

Joomla의 또 다른 멋진 모듈은 기사 - 관련 기사. 기사 - 관련 기사는 사이트 방문자가 보려고 선택한 기사와 관련된 기사를 표시하는 모듈입니다. 이 모듈은 현재 기사와 관련된 기사를 어떻게 알 수 있습니까? 그것은 메타 데이터에 입력 할 수있는 메타 데이터 키워드를 사용합니다 ...

Joomla의 저자, ​​편집자 및 발행인 계정 만들기 - 더미

Joomla의 저자, ​​편집자 및 발행인 계정 만들기 - 더미

Joomla는 세 가지 프런트 엔드 사용자, 백엔드 사용자 및 그 중간에있는 특수 클래스의 사용자 클래스가 있습니다. 이 클래스에는 3 개의 사용자 그룹이 있습니다. 작성자는 기사를 제출할 수 있습니다. 편집자는 새 기사를 제출하고 기존 기사를 편집 할 수 있습니다. 게시자는 새 기사를 제출하고 기존 기사를 편집하며 기사를 게시 할 수 있습니다. Joomla 사이트 작성자 작성 ...