


HTML5 réalise la bataille de chars classique. Les chars peuvent se déplacer et tirer des compétences de didacticiel bullet_html5.
tank.html
<!DOCTYPE html> <br><html> >< meta charset="utf-8"/> <br></head> <br><body onkeydown="getCommand();"> ; /h1> <br><!--Le champ de bataille de la bataille de chars--> <br><canvas id="tankMap" width="400px" height="300px" style="background-color:black "> ;</canvas> <br><span id="aa">data</span> <br><!--Présentez tankGames.js à cette page--> <br>< script type="text/javascript" src="tank.js"></script> <br><script type="text/javascript"> document.getElementById("tankMap"); <br>//Obtenir le contexte du dessin (vous pouvez le comprendre comme un pinceau) <br>var cxt=canvas1.getContext("2d"); <br>//Direction<br>var hero=new Hero(140,140,0,heroColor); <br>//Définir une balle vide<br>var heroBullet=null <br>//Définir le tank ennemi (le de l'ennemi Combien y a-t-il de chars ? Idée : est-ce une définition unique, ou est-il placé dans un tableau ?) <br>var ennemisTanks=new Array();//Meurs et vis d'abord, posez 3, puis nous ajouterons la quantité des chars ennemis, créerons des variables <br>//0->upper, 1->right, 2->lower 3->left<br>for(var i=0;i<3 ;i ){ <br />//Créer un tank<br />var ennemisTank=new EnemyTank((i 1)*50,0,2,enmeyColor); <br />//Mettre ce tank dans le tableau<br />enemyTanks); [i]=enemyTank; <br />} <br />//Premier appel <br />flashTankMap(); <br />//Ecrire une fonction pour rafraîchir régulièrement notre zone de combat, et mettre les éléments qui apparaîtront dans la zone de combat (votre propre char, chars ennemis, balles, bombes, <br />//Obstacles...)->Idées de jeu<br>fonction flashTankMap(){ <br>//Effacer la toile<br>cxt.clearRect( 0,0,400,300) ; <br>//Mon tank<br>drawTank(hero); <br>//Dessinez vos propres balles<br>//Comment l'effet de vol de balle apparaît-il [Réponse : Tout d'abord, nous devrait le faire à intervalles réguliers (setInterval) pour rafraîchir la zone de combat. Si les coordonnées de la balle changent pendant le rafraîchissement, cela donnera l'impression que la balle vole !] <br>drawHeroBullet(); <br>// Dessinez tous les chars ennemis <br>for(var i=0;i<3;i ){ <br />drawTank(enemyTanks[i]); <br />} <br />} <br />// Il s'agit d'une fonction de touche utilisateur acceptée<br />function getCommand(){ <br />//Comment puis-je savoir sur quelle touche le joueur a appuyé<br />//Décrire l'événement lorsque la touche est enfoncée --->objet d'événement- --- ->Fonction de gestion des événements () <br>var code=event.keyCode;//Le code ascii de la lettre correspondante-> Regardons la table des codes <br>switch(code){ <br> cas 87://on<br>hero.moveUp(); <br>break; <br>cas 68 : <br>hero.moveRight(); <br>cas 83 : <br>héros; .moveDown(); <br>break; <br>cas 65 : <br>hero.moveLeft(); <br>break <br>cas 74 : <br>hero.shotEnemy(); <br>} <br> //Déclenchez cette fonction flashTankMap(); <br>flashTankMap(); <br>//Redessinez tous les chars ennemis ici (pensez, créons simplement une fonction spécifiquement pour actualiser notre. tanks régulièrement Canvas [zone de combat]) <br>} <br>//Actualiser la zone de combat toutes les 100 millisecondes <br>window.setInterval("flashTankMap()",100); <br></script> ></corps> <br></html>
tank.js
Copier le code
Le code est le suivant :
1 |
|
<pre name="code" class="javascript">// Pour faciliter la programmation, nous définissons deux tableaux de couleurs <br>var heroColor=new Array("#BA9658","#FEF26E"); <br>var enmeyColor=new Array("#00A2B5","#00FEFE"); 🎜>//Pour les autres chars ennemis, l'évolutivité ici est toujours bonne <br>//Bullet class<br>function Bullet(x,y,direct,speed){ <br>this.x=x <br> this.y=y; <br>this.direct=direct; <br>this.speed=speed; <br>this.timer=null <br>this.isLive=true <br>this run=function; run(){ <br>//Lors de la liste des coordonnées de cette balle, nous déterminons d'abord si la balle a atteint la limite <br>if(this.x<=0||this.x>=400|| this. y<=0||this.y>=300){ <br>//La balle va s'arrêter <br>window.clearInterval(this.timer); this.isLive =false; <br>}else{ <br>//Ceci peut être utilisé pour modifier les coordonnées <br>switch(this.direct){ <br>case 0 : <br>this.y-=this .speed; <br> break; <br>cas 1 : <br>this.x =this.speed <br>cas 2 : <br>this.y =this.speed; break; <br>cas 3 : <br>this.x-=this.speed; <br>break <br>} <br>document.getElementById("aa").innerText="bulletx= " this.x " Bullet y=" this.y; <br>} <br>} <br>//Ceci est une classe Tank <br>fonction Tank(x,y,direct,color){ <br>this .x=x; <br>this.y=y; <br>this.speed=1; <br>this.direct=direct <br>//Un réservoir nécessite deux couleurs. color; <br>//Monter<br>this.moveUp=function(){ <br>this.y-=this.speed; <br>this.direct=0 <br>} <br>// À droite<br>this.moveRight=function(){ <br>this.x =this.speed; <br>this.direct=1 <br>} <br>//Descendre<br>this; 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>//Définir une classe de Héros<br>//x représente l'abscisse du tank, y représente la direction ordonnée et directe <br>function Hero(x,y,direct,color){ <br>//La fonction des deux phrases suivantes est d'obtenir l'effet d'héritage par emprunt d'identité d'objet<br>this.tank=Tank ; <br>this.tank (x,y,direct,color); <br>//Ajouter une fonction pour tirer sur le char ennemi <br>this.shotEnemy=function(){ <br>//Créer une balle. , la position de la balle doit être liée au héros , et liée à la direction du héros.!!! <br>//this.x est l'abscisse du héros actuel. Ici, nous traitons (affinons) simplement 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>cas 2 : <br>heroBullet=new Bullet(this.x 9,this. y 30,this.direct,1); <br> break; <br>cas 3 : //right<br>heroBullet=new Bullet(this.x,this.y 9,this.direct,1); >break; <br>} <br>//call Notre bullet run, 50 est une conclusion obtenue par le professeur après de nombreux tests <br>var timer=window.setInterval("heroBullet.run()",50); <br>//Assignez ce timer à cette puce (les objets js sont passés par référence !) <br>heroBullet.timer=timer; <br>} <br>} <br>//Définissez une classe EnemyTank <br>fonction EnemyTank (x,y,direct,color){ <br>//Héritent également de Tank via l'usurpation d'identité d'objet <br>this.tank=Tank; <br>this.tank(x,y,direct,color); } <br>//Dessinez vos propres puces, encore une chose, vous pouvez également encapsuler cette fonction dans la classe Hero <br>function drawHeroBullet(){ <br>//Ici, nous avons ajouté une phrase, mais vous devez savoir que l'ajouter ici nécessite une compréhension de l'ensemble du programme. <br>if(heroBullet!=null&&heroBullet.isLive){ <br>cxt.fillStyle="#FEF26E"; <br>cxt.fillRect(heroBullet.x,heroBullet. y,2,2); <br>} <br>} <br>//Dessiner le réservoir<br>fonction drawTank(tank){ <br>//Considérer la direction<br>switch(tank.direct){ <br>cas 0 : //Haut<br>cas 2 :// Suivant<br>//Dessinez votre propre réservoir en utilisant les techniques de dessin précédentes<br>//Définissez la couleur<br>cxt.fillStyle=tank. color[0]; <br>//Le professeur Han utilise le premier Die --->Live plus tard (il est préférable que les débutants utilisent cette méthode) <br>//Dessinez d'abord le rectangle à gauche <br>cxt.fillRect( tank.x, tank.y,5,30); <br>//Dessinez le rectangle à droite (veuillez donner votre avis à ce moment-là -> il doit y avoir un point de référence) <br>cxt.fillRect(tank. x 15, tank.y,5,30); <br>//Dessine le rectangle du milieu<br>cxt.fillRect(tank.x 6,tank.y 5,8,20); Dessinez le couvercle du réservoir<br>cxt.fillStyle=tank.color[1]; <br>cxt.arc(tank.x 10,tank.y 15,4,0,360,true <br>cxt.fill); (); <br>//Dessinez le canon (ligne droite) <br>cxt.strokeStyle =tank.color[1] <br>//Définissez la largeur de la ligne <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>cas 1 : / /droite et gauche<br>cas 3 : <br>//Dessinez votre propre réservoir, en utilisant les techniques de dessin précédentes<br>//Définissez la couleur<br>cxt.fillStyle=tank.color[0] <br>//韓老師用先死--->後活(初學者最好用這個方法) <br>//先畫出左面的長方形<br>cxt.fillRect(tank.x,tank.y,30, 5); <br>//畫出右邊的長方形(這時請大家思路->一定要一個參照點) <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>//畫出砲筒(直線) <br>cxt.strokeStyle=tank.color[1]; <br>//設定線條的寬度<br>cxt.lineWidth=1.5; <br>cxt.beginPath(); <br>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><br> <br> <br><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

L'exécution du projet H5 nécessite les étapes suivantes: Installation des outils nécessaires tels que le serveur Web, Node.js, les outils de développement, etc. Créez un environnement de développement, créez des dossiers de projet, initialisez les projets et écrivez du code. Démarrez le serveur de développement et exécutez la commande à l'aide de la ligne de commande. Aperçu du projet dans votre navigateur et entrez l'URL du serveur de développement. Publier des projets, optimiser le code, déployer des projets et configurer la configuration du serveur Web.

La production de pages H5 fait référence à la création de pages Web compatibles compatibles multiplateformes à l'aide de technologies telles que HTML5, CSS3 et JavaScript. Son cœur réside dans le code d'analyse du navigateur, la structure de rendu, le style et les fonctions interactives. Les technologies courantes incluent les effets d'animation, la conception réactive et l'interaction des données. Pour éviter les erreurs, les développeurs doivent être débogués; L'optimisation des performances et les meilleures pratiques incluent l'optimisation du format d'image, la réduction des demandes et les spécifications du code, etc. pour améliorer la vitesse de chargement et la qualité du code.

Les étapes pour créer une icône H5 Click comprennent: la préparation d'une image source carrée dans le logiciel d'édition d'image. Ajoutez l'interactivité dans l'éditeur H5 et définissez l'événement Click. Créez un hotspot qui couvre l'icône entière. Définissez l'action des événements de clic, tels que le saut sur la page ou le déclenchement de l'animation. Exporter H5 documents sous forme de fichiers HTML, CSS et JavaScript. Déployez les fichiers exportés vers un site Web ou une autre plate-forme.

H5 n'est pas un langage de programmation autonome, mais une collection de HTML5, CSS3 et JavaScript pour la création d'applications Web modernes. 1. HTML5 définit la structure et le contenu de la page Web et fournit de nouvelles balises et API. 2. CSS3 contrôle le style et la mise en page, et introduit de nouvelles fonctionnalités telles que l'animation. 3. JavaScript implémente l'interaction dynamique et améliore les fonctions par les opérations DOM et les demandes asynchrones.

H5Referstohtml5, apivotaltechnologyInwebdevelopment.1) html5introducesnewelementsandapisforrich, dynamicwebapplications.2) itsupp OrtsMultimeDiaHithoutPlugins, améliorant la réception detièmeaCrOsDevices.3) SemantelelementsImproveContentsTructureAndSeo.4) H5'sRespo

Oui, la production de pages H5 est une méthode de mise en œuvre importante pour le développement frontal, impliquant des technologies de base telles que HTML, CSS et JavaScript. Les développeurs construisent des pages H5 dynamiques et puissantes en combinant intelligemment ces technologies, telles que l'utilisation du & lt; Canvas & gt; Tag pour dessiner des graphiques ou utiliser JavaScript pour contrôler le comportement d'interaction.

H5 (HTML5) convient aux applications légères, telles que les pages de campagne de marketing, les pages d'affichage des produits et les micro-Websites de promotion d'entreprise. Ses avantages résident dans la plateformité multi-plateaux et une riche interactivité, mais ses limites résident dans des interactions et des animations complexes, un accès aux ressources locales et des capacités hors ligne.

H5 ÉTAPES DE CRÉATION DE LA FINES POP-UP: 1. Déterminez la méthode de déclenchement (cliquez, temps, sortie, défilement); 2. Conception du contenu (titre, texte, bouton d'action); 3. Set Style (taille, couleur, police, arrière-plan); 4. Implémentation du code (HTML, CSS, JavaScript); 5. Tester et déploiement.
