tank.html
<br> <br> ><meta charset="utf-8"> <br> <br> <br><h1>hmtl5-클래식 탱크 전투 <br><!--탱크전투의 전장--> <br><canvas id="tankMap" width="400px" height="300px" style="Background-color:black "> <br><span id="aa">data</span> <br><!--이 페이지에 TankGames.js를 소개하세요--> <br> <br><script type="text/javascript"> <br />//캔버스 가져오기<br />var canvas1= document.getElementById("tankMap"); <br />//그리기 컨텍스트 가져오기(브러쉬로 이해할 수 있음) <br />var cxt=canvas1.getContext("2d") <br />//내 탱크 영웅 <br />//Direction<br />var Hero=new Hero(140,140,0,heroColor) <br />//빈 총알 정의<br />var HeroBullet=null;//적의 탱크를 정의합니다( 적의 탱크는 몇 개입니까? 아이디어: 단일 정의입니까, 아니면 배열에 배치됩니까?) <br />var 적탱크=new Array() <br />//먼저 죽고 살아서 3을 설정한 다음 적 탱크 수량을 추가하고 변수 <br />//0->upper, 1->right, 2->lower 3->left<br />for(var i=0;i<3)를 만듭니다. ;i ){ <br />//탱크 만들기<br />var riderTank=new EnemyTank((i 1)*50,0,2,enmeyColor) <br />//이 탱크를 배열에 넣습니다<br />enemyTanks [i]=enemyTank; <br />} <br />//첫 번째 호출 <br />flashTankMap() <br />//전투 지역을 정기적으로 새로 고치는 함수를 작성하고 전투 지역에 나타날 요소를 넣습니다. (자신의 탱크, 적 탱크, 총알, 폭탄, <br />//장애물...)->게임 아이디어<br />function flashTankMap(){ <br />//캔버스 지우기<br />cxt.clearRect( 0,0,400,300) ; <br />//내 탱크<br />drawTank(hero); <br />//나만의 총알 그리기<br />//총알 날아가는 효과는 어떻게 나타나는 걸까요? 전투 지역을 새로 고치려면 일정 시간(setInterval)마다 수행해야 합니다. 새로 고침 중에 총알 좌표가 변경되면 총알이 날아가는 듯한 느낌을 줍니다!] <br />drawHeroBullet() <br />//적 탱크 <br />// 모든 적 탱크 그리기 <br />for(var i=0;i<3;i ){ <br />drawTank(enemyTanks[i]) <br />} <br />} <br />// 이것은 사용자 키 허용 함수입니다<br />function getCommand(){ <br />//플레이어가 어떤 키를 눌렀는지 어떻게 알 수 있나요<br />//키를 눌렀을 때의 이벤트 설명 --->이벤트 객체- --- ->이벤트 처리 함수() <br />var code=event.keyCode;//해당 문자의 ascii 코드-> 코드표를 살펴보겠습니다 <br />switch(code){ <br /> case 87://on<br />hero.moveUp(); <br />break <br />case 68: <br />hero.moveRight() <br />break <br />hero .moveDown(); <br />break; <br />case 65: <br />hero.moveLeft(); <br />case 74: <br />hero.shotEnemy(); <br />} <br /> //이 함수 실행 flashTankMap(); <br />flashTankMap(); <br />//여기서 모든 적 탱크를 다시 그릴 수 있습니다. 탱크는 정기적으로 캔버스 [전투 지역]) <br />} <br />//100밀리초마다 전투 지역을 새로 고칩니다. <br />window.setInterval("flashTankMap()",100) <br /></script> > <br></canvas> </h1>
tank.js
코드 복사
<pre name="code" class="javascript">// 프로그래밍 편의를 위해 두 가지 색상 배열을 정의합니다. <br>var HeroColor=new Array("#BA9658","#FEF26E") <br>var enmeyColor=new Array("#00A2B5","#00FEFE"); 🎜>//다른 적 탱크의 경우 확장성은 여전히 좋습니다. <br>//Bullet class<br>function Bullet(x,y,direct,speed){ <br>this.x=x; this.y=y; <br>this.speed=speed; <br>this.isLive=true; run(){ <br>//이 총알의 좌표를 나열할 때 먼저 총알이 경계에 도달했는지 여부를 확인합니다. <br>if(this.x=400|| this. y=300){ <br>//총알이 멈출 예정입니다. <br>window.clearInterval(this.timer) <br>//총알이 죽었습니다<br> this.isLive =false; <br>}else{ <br>//좌표를 수정하는 데 사용할 수 있습니다 <br>switch(this.direct){ <br>case 0: <br>this.y-=this .speed; <br> break; <br> 케이스 1: <br>this.x =this.speed; <br>케이스 2: <br>this.y =this.speed; break; <br>사례 3: <br>this.x-=this.speed; <br>break <br>} <br>} <br>document.getElementById("aa").innerText="bulletx= " this.x " Bullet y=" this.y; <br>} <br>} <br>//이것은 탱크 클래스입니다 <br>함수 Tank(x,y,direct,color){ <br>this .x=x; <br>this.y=y; <br>this.direct=direct; <br>//탱크에는 두 가지 색상이 필요합니다. color; <br>//위로 이동<br>this.moveUp=function(){ <br>this.y-=this.speed; <br>this.direct=0; 오른쪽으로<br>this.moveRight=function(){ <br>this.x =this.speed; <br>this.direct=1; <br>} <br>//아래로 이동<br> moveDown=function( ){ <br>this.y =this.speed; <br>this.direct=2 <br>} <br>//Left<br>this.moveLeft=function(){ <br> this.x- =this.speed; <br>this.direct=3; <br>} <br>} <br>//영웅 클래스 정의<br>//x는 탱크의 가로좌표를 나타내고, y는 the ordinate, direct direct <br>function Hero(x,y,direct,color){ <br>//다음 두 문장의 기능은 객체 가장을 통해 상속 효과를 얻는 것입니다<br>this.tank=Tank ; <br>this.tank (x,y,direct,color); <br>//적 탱크를 쏘는 기능을 추가합니다. <br>this.shotEnemy=function(){ <br>//총알을 생성합니다. , 총알의 위치는 영웅과 관련이 있어야 하며, 영웅의 방향과 관련이 있어야 합니다.!!! <br>//this.x는 현재 영웅의 가로 좌표입니다 switch(this.direct){ <br>case 0 : <br>heroBullet=new Bullet(this.x 9,this.y,this.direct,1) <br>break <br>case 1: <br>heroBullet=new Bullet(this.x 30,this .y 9,this.direct,1); <br>break <br>사례 2: <br>heroBullet=new Bullet(this.x 9,this. y 30,this.direct,1); <br> break; <br>case 3: //right<br>heroBullet=new Bullet(this.x,this.y 9,this.direct,1); >break; <br>} <br>//call Bullet run, 50은 교사가 여러 테스트를 거쳐 얻은 결론입니다. <br>var time=window.setInterval("heroBullet.run()",50); <br>//이 타이머를 이 글머리 기호에 할당합니다(js 객체는 참조로 전달됩니다!) <br>heroBullet.timer=timer; <br>} <br>} <br>//EnemyTank 클래스 정의 <br>함수 EnemyTank (x,y,direct,color){ <br>//객체 가장을 통해 Tank 상속 <br>this.tank=Tank; <br>this.tank(x,y,direct,color); } <br>//자신만의 글머리 기호 그리기, 한 가지 더, 이 함수를 Hero 클래스에 캡슐화할 수도 있습니다. <br>function drawHeroBullet(){ <br>//여기에 문장을 추가했지만 알아야 할 사항 여기에 추가하려면 <br>if(heroBullet!=null&&heroBullet.isLive){ <br>cxt.fillStyle="#FEF26E" <br>cxt.fillRect(heroBullet.x,heroBullet. y,2,2); <br>} <br>} <br>//탱크 그리기<br>function drawTank(tank){ <br>//방향 고려<br>switch(tank.direct){ <br>case 0: //Up<br>case 2 ://Next<br>//이전 그리기 기술을 사용하여 자신만의 탱크를 그립니다.<br>//색상 설정<br>cxt.fillStyle=tank. color[0];//한 선생님은 첫 번째 주사위를 사용합니다 --->나중에 라이브(초보자는 이 방법을 사용하는 것이 가장 좋습니다) <br>//먼저 왼쪽에 직사각형을 그립니다 <br>cxt.fillRect( 탱크.x, 탱크.y,5,30); <br>//오른쪽에 직사각형을 그립니다. (이때 생각을 말해주세요 -> 기준점이 있을 것입니다.) <br>cxt.fillRect(tank. x 15, 탱크.y,5,30); <br>//가운데 직사각형을 그립니다.<br>cxt.fillRect(tank.x 6,tank.y 5,8,20)// 탱크 덮개 그리기<br>cxt.fillStyle=tank.color[1];cxt.arc(tank.x 10,tank.y 15,4,0,360,true) <br>cxt.fill (); <br>//통(직선) 그리기 <br>cxt.StrokeStyle =tank.color[1] <br>//선 너비 설정 <br>cxt.lineWidth=1.5; 🎜>cxt.beginPath(); <br>cxt.moveTo(tank.x 10,tank.y 15) <br>if(tank.direct==0){ <br>cxt.lineTo(tank.x 10) ,tank.y) <br>}else if(tank.direct==2){ <br>cxt.lineTo(tank.x 10,tank.y 30) <br>} <br>cxt.closePath( ); <br>cxt.Stroke(); <br>break; <br>사례 1: / /오른쪽 및 왼쪽<br>사례 3: <br>//이전 그리기 기법을 사용하여 나만의 탱크 그리기<br>//색상 설정<br>cxt.fillStyle=tank.color[0] <br>//한 선생님은 주사위를 먼저 사용합니다 --->나중에 라이브(초보자는 이 방법을 사용하는 것이 가장 좋습니다) <br>//왼쪽에 직사각형을 먼저 그립니다 <br>cxt.fillRect(tank.x, Tank.y,30 ,5);//오른쪽에 직사각형을 그립니다(이때 생각해 보세요 -> 참조점이 있어야 합니다) <br>cxt.fillRect(tank.x, Tank.y 15,30, 5); <br>//가운데 직사각형 그리기<br>cxt.fillRect(tank.x 5, Tank.y 6,20,8) <br>//탱크 덮개 그리기<br>cxt. fillStyle=tank.color[1]; <br>cxt.arc(tank.x 15,tank.y 10,4,0,360,true); <br>cxt.fill()>//통 그리기 (직선) <br>cxt.StrokeStyle=tank.color[1]; <br>//선 너비 설정<br>cxt.lineWidth=1.5; <br>cxt.beginPath(); cxt.moveTo(tank.x 15,tank.y 10); <br>//오른쪽으로<br>if(tank.direct==1){ <br>cxt.lineTo(tank.x 30,tank. y 10); <br> }else if(tank.direct==3){ //왼쪽<br>cxt.lineTo(tank.x,tank.y 10) <br>} <br>cxt.closePath( ); <br>cxt .Stroke(); <br>break; <br>} <br>} <br>
사전>

HTML5 코드는 태그, 요소 및 속성으로 구성됩니다. 1. 태그는 컨텐츠 유형을 정의하고 다음과 같은 각도 브래킷으로 둘러싸여 있습니다. 2. 요소는 컨텐츠와 같은 시작 태그, 내용 및 엔드 태그로 구성됩니다. 3. 속성 시작 태그에서 키 값 쌍을 정의하고 기능을 향상시킵니다. 웹 구조를 구축하기위한 기본 단위입니다.

HTML5는 현대적인 웹 페이지를 구축하는 핵심 기술로 많은 새로운 요소와 기능을 제공합니다. 1. HTML5는 웹 페이지 구조 및 SEO를 향상시키는 의미 론적 요소를 소개합니다. 2. 멀티미디어 요소를 지원하고 플러그인없이 미디어를 포함시킵니다. 3. 양식은 새로운 입력 유형 및 검증 속성을 향상시켜 검증 프로세스를 단순화합니다. 4. 웹 페이지 성능 및 사용자 경험을 향상시키기 위해 오프라인 및 로컬 스토리지 기능을 제공합니다.

H5 코드에 대한 모범 사례는 다음과 같습니다. 1. 올바른 문서 선언 및 문자 인코딩 사용; 2. 시맨틱 태그를 사용하십시오. 3. HTTP 요청을 줄입니다. 4. 비동기 부하 사용; 5. 이미지 최적화. 이러한 관행은 웹 페이지의 효율성, 유지 관리 및 사용자 경험을 향상시킬 수 있습니다.

웹 표준과 기술은 현재까지 HTML4, CSS2 및 간단한 JavaScript에서 발전했으며 중대한 개발을 거쳤습니다. 1) HTML5는 캔버스 및 웹 스토리지와 같은 API를 도입하여 웹 응용 프로그램의 복잡성과 상호 작용을 향상시킵니다. 2) CSS3은 애니메이션 및 전환 기능을 추가하여 페이지를보다 효과적으로 만듭니다. 3) JavaScript는 화살표 기능 및 클래스와 같은 Node.js 및 ES6의 최신 구문을 통해 개발 효율 및 코드 가독성을 향상시킵니다. 이러한 변경으로 인해 웹 애플리케이션의 성능 최적화 및 모범 사례의 개발이 촉진되었습니다.

H5는 HTML5의 약어 일뿐 만 아니라 더 넓은 현대 웹 개발 기술 생태계를 나타냅니다. 1. H5는 HTML5, CSS3, JavaScript 및 관련 API 및 기술을 포함합니다. 2. 그것은 더 풍부하고 대화식이며 부드러운 사용자 경험을 제공하며 여러 장치에서 원활하게 실행할 수 있습니다. 3. H5 기술 스택을 사용하여 반응 형 웹 페이지와 복잡한 대화식 기능을 만들 수 있습니다.

H5 및 HTML5는 동일한 것을, 즉 html5를 나타냅니다. HTML5는 HTML의 다섯 번째 버전으로 시맨틱 태그, 멀티미디어 지원, 캔버스 및 그래픽, 오프라인 스토리지 및 로컬 스토리지와 같은 새로운 기능을 제공하여 웹 페이지의 표현성 및 상호 작용성을 향상시킵니다.

h5referstohtml5, apivotaltechnologyinwebdevelopment.1) html5introducesnewelements 및 dynamicwebapplications.2) itsupp ortsmultimediawithoutplugins, enovannangeserexperienceacrossdevices.3) SemanticLementsImproveContentsTructUreAndSeo.4) H5'Srespo

H5 개발에서 마스터 해야하는 도구 및 프레임 워크에는 vue.js, React 및 Webpack이 포함됩니다. 1.vue.js는 사용자 인터페이스를 구축하고 구성 요소 개발을 지원하는 데 적합합니다. 2. 복잡한 응용 프로그램에 적합한 가상 DOM을 통해 페이지 렌더링을 최적화합니다. 3. Webpack은 모듈 포장에 사용되며 리소스로드를 최적화합니다.


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

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

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

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.
