>  기사  >  웹 프론트엔드  >  Han Shunping H5 게임 개발 탱크 전투 비디오 소스 코드 코스웨어 공유

Han Shunping H5 게임 개발 탱크 전투 비디오 소스 코드 코스웨어 공유

黄舟
黄舟원래의
2017-12-04 11:28:162789검색

"Han Shunping H5 게임 개발 탱크 전투 비디오 튜토리얼"은 Han Shunping의 온라인 공개 과정에서 선택되었으며 HTML5를 사용하여 탱크 전투 게임을 만드는 방법을 소개합니다. H5 기술을 하나의 3D 탑으로 만들어 보겠습니다. -다운 탱크 전투 게임. 가장 기본적인 컨트롤부터 적 AI와 전체 게임 시스템까지, 완전한 게임을 실현할 수 있도록 단계별로 안내해 드립니다. 이 튜토리얼에서는 프로그램과 Unity의 사용에 중점을 두므로 아트 리소스에 대해서는 너무 많이 이야기하지 않습니다. Unity 공식 교육일의 리소스 패키지를 사용하겠습니다.

Han Shunping H5 게임 개발 탱크 전투 비디오 소스 코드 코스웨어 공유

강좌 재생 주소: http://www.php.cn/course/409.html

선생님의 강의 스타일:

강의는 친근하고 자연스러우며 가식이나 고의적인 과장이 없으며, 교사와 학생이 평등하고 협력하며 화합하는 분위기 속에서 조용하고 감정적인 대화를 나눕니다. 간단하고 실제적인 교육 상황에 대한 지식 탐구, 학생들은 조용한 사고와 침묵의 승인을 통해 지식을 얻습니다

이 영상에서 더 어려운 부분은 제작 아이디어입니다:

키보드 이벤트 유발 문제:

플레이어가 키를 눌러 탱크를 이동하도록 제어해야 하는 경우 많은 사람들이 가장 먼저 생각하는 것은 해당 이동 기능을 해당 키의 onkeydown 이벤트에 바인딩하는 것입니다.

일반적으로 이런 식으로 쓰는 데는 문제가 있습니다. 즉, 노인이 천천히 손을 떼고 키보드 이벤트가 여러 번 발생하는 것을 방지하기 위해 일정 시간 동안 키를 눌렀을 때만 발생합니다. 이벤트가 지속적으로 발생합니다.

이 문제가 게임에 반영된 것은 버튼을 누른 후 일정 시간이 지나면 탱크가 항상 계속해서 움직이기 시작한다는 것인데, 이는 게임 경험에 큰 영향을 미칩니다.

이 문제에 대한 해결책은 매우 간단합니다.

let keyInfo = {};     //按键是否被按下的信息let aKey = [72 , 74 , 87 , 83 , 65 , 68 , 38 , 40 , 37 , 39 , 17];      //这里面的数字是wasdhj等按键的键值
for (let i = 0; i < aKey.length; i++) {
    keyInfo[aKey[i]] = {
        pressed : false
    }
}

키의 키 값을 속성 이름으로 사용하고 키 상태를 keyInfo 개체에 저장합니다. 초기 값은 false입니다. 키가 눌리지 않았음을 나타냅니다.

키보드의 해당 키가 눌리면 누른 키의 키 값인 keyCode가 이벤트 대리자를 통해 직접 캡처됩니다.

onkeydown 이벤트가 트리거된 후 keyInfo의 해당 속성을 true로 설정하여 키가 눌렸음을 나타냅니다. onkeyup 이벤트가 트리거된 후 keyInfo의 해당 속성을 false로 설정합니다.

마지막으로 게임을 반복하여 keyInfo에서 해당 키 속성의 신뢰성을 감지하고 해당 작업을 수행합니다.

경로 문제:

탱크와 총알 사이의 충돌 문제는 언급하지 않고 경로 문제 기본적으로 탱크와 총알(총알 문제는 실제로 좀 더 복잡하며 나중에 자세히 논의할 것임)이 지도에서 이동할 수 있는 위치와 이동할 수 없는 위치를 결정하는 것입니다. 후속 질문의 대부분이 루진을 중심으로 이루어지기 때문에 전체 게임의 핵심이라고 할 수 있습니다.

잠깐

여기서 소스 코드 리소스를 다운로드하는 것도 좋습니다:http://www.php.cn/xiazai/learn/2048

리소스는 비디오 코스웨어와 ppt를 공유합니다:

  1. 재료

  2. 문서

  3. 소스 코드

위 내용은 Han Shunping H5 게임 개발 탱크 전투 비디오 소스 코드 코스웨어 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.