Accueil Finances personnelles Comment ajouter des collisions à votre jeu HTML5 - les nuls

Comment ajouter des collisions à votre jeu HTML5 - les nuls

Table des matières:

Vidéo: Ajoutez la gravité et les collisions dans un jeu HTML5 JavaScript avec le Framework Phaser 2025

Vidéo: Ajoutez la gravité et les collisions dans un jeu HTML5 JavaScript avec le Framework Phaser 2025
Anonim

Les choses les plus intéressantes dans les jeux vidéo HTML5 se produisent lorsque les sprites se heurtent et s'entrechoquent. Les moteurs de jeu ont normalement une sorte d'outil pour tester si deux sprites se chevauchent. Ceci est appelé détection de collision , et cela peut être fait de plusieurs façons. Cet exemple utilise le schéma standard bounding rectangle . Ce n'est pas parfait, mais il est très facile à mettre en œuvre et est couramment utilisé.

Comment configurer les collisions de rectangle de délimitation dans votre jeu

Jetez un coup d'œil à colTest. html et vous verrez un exemple simple.

Dans la colTest. Exemple html, l'utilisateur déplace la créature avec la souris, et vous recevrez un message lorsque la créature touchera la boîte au milieu de l'écran.

colTest. html checkCollisions (); boîte. mettre à jour(); critter. update ();} // mise à jour de fin; function checkCollisions () { if (case à cocher: collidesWith (critter)) { sortie. innerHTML = "Collision"; } else { sortie. innerHTML = "Aucune collision"; } // fin si } // fin checkCollisions vide

Un certain nombre de choses intéressantes se passent dans ce code:

  1. Masque le curseur normal de la souris.

    Lorsque vous voulez faire suivre un autre objet à la souris, vous voulez normalement cacher le curseur normal. Dans SimpleGame, utilisez le jeu. HideCursor () méthode pour cacher le curseur de la souris à l'intérieur de l'écran de jeu.

  2. Créez plus d'un sprite.

    Il faut deux pour tanguer, ou entrer en collision. Dans cet exemple, la boîte restera stationnaire, et une créature qui suit la souris.

  3. Donnez à la créature une méthode followMouse ().

    Dans cet exemple, la créature suit la souris. Commencez par créer une méthode followMouse ().

  4. Détermine la position de la souris.

    La position de la souris est déterminée (en jeu simple js) avec le document. mouseX et document. propriétés mouseY.

  5. Copiez la position de la souris sur la position de la créature.

    Utilisez la position x de la souris pour définir la position x de la créature et répétez avec y.

  6. Appelez la méthode followMouse () de la créature à chaque image.

    Comme d'habitude, la fonction update () est l'endroit où vous placez du code qui devrait arriver de manière répétée.

Si vous jouez avec le colTest. page html, vous remarquerez probablement que les collisions ne sont pas exactes. Il est possible d'avoir un registre de collision même si la créature ne touche pas la boîte. Ceci est important car simpleGame utilise un schéma appelé collisions de boîte englobante .

Cela signifie que vous ne vérifiez pas réellement si les images entrent en collision, mais si les rectangles entourant les images entrent en collision. Dans cet exemple, la différence est mineure, mais vous verrez parfois des erreurs significatives avec ce mécanisme, notamment avec des éléments longs et fins. Pendant la rotation d'un sprite, la taille du rectangle englobant peut changer.

Collisions basées sur la distance pour votre jeu

Une autre forme de détection de collision, appelée collisions entourant le cercle , est disponible. Avec ce mécanisme, vous calculez simplement la distance entre le centre de deux sprites, et si cette valeur est inférieure à un certain seuil, vous la considérez comme une collision. Cette approche a deux avantages:

  • La distance de collision est constante. La distance entre les centres de l'image ne change pas lorsque les images sont pivotées, même si les images changent de taille.

  • Le seuil de collision peut être modifié. Vous pouvez définir la sensibilité souhaitée. Définissez un grand rayon de collision pour des collisions faciles et un plus petit lorsque vous voulez que les collisions ne soient déclenchées que lorsque les sprites sont très proches les uns des autres.

La bibliothèque simpleGame L'objet Sprite a une méthode distanceTo () qui calcule la distance d'une image à l'autre. Vous pouvez voir un exemple de ce code dans la distance. Exemple html:

distance. jeu html var; var boîte; var critter; sortie var; Fonction init () {game = new Scène (); Jeu. hideCursor (); box = new Sprite (jeu, "simpleBox.png", 50, 50); critter = nouveau Sprite (jeu, "critter.gif", 50, 50); sortie = document. getElementById ("sortie"); // Donne une boîte de position fixe. setPosition (200, 150); boîte. setSpeed ​​(0); critter. setPosition (100, 100); critter. setSpeed ​​(0); // Critère contrôlée par la créature de la souris. followMouse = function () {this. setX (document. mouseX); ce. setY (document. mouseY);} // fin du jeu followMouse. start ();} // fin de la fonction d'initialisation update () {game. clair(); critter. followMouse (); checkDistance (); boîte. mettre à jour(); critter. update ();} // mise à jour de fin; function checkDistance () { dist = boîte. distanceTo (critter); sortie (dist <50) {. innerHTML = "Collision:" + dist; } else { sortie. innerHTML = "Pas de collision:" + dist; } // fin si } // fin checkDistance vide

La méthode de collision basée sur la distance est très similaire à la version du rectangle englobant. Créez une fonction checkDistance () qui agira exactement comme l'ancienne méthode checkCollisions (). Voici les étapes pour ce qui se passe dans checkDistance:

  1. Trouvez la distance entre les deux sprites.

    Utilisez la méthode distanceTo () du sprite pour déterminer la distance entre les deux sprites.

  2. Si la distance est inférieure à un certain seuil, comptez-la comme une collision.

    En règle générale, vous devez utiliser la largeur de l'image-objet la plus petite comme point de départ pour un seuil de collision, mais vous pouvez l'ajuster pour rendre les collisions plus ou moins probables.

  3. Signaler l'état de collision.

    Dans cet exemple, il suffit d'imprimer "collision" ou "pas de collision", mais dans un jeu réel, les collisions sont déclencheurs d'autres actions: augmentation du score, diminution du nombre de vies, modification de la vitesse ou de la position des éléments en collision, ou peu importe. (Heureusement, cela implique des explosions.)

Comment ajouter des collisions à votre jeu HTML5 - les nuls

Le choix des éditeurs

En intégrant le cyclisme dans votre routine - les mannequins

En intégrant le cyclisme dans votre routine - les mannequins

Avec un peu de réflexion, le cyclisme s'adapte facilement à votre emploi du temps. Faites de l'exercice sain et économisez du temps et de l'argent. Voici quelques conseils pour faire du cyclisme une partie de votre routine hebdomadaire: Ce n'est pas tout ou rien: vous n'avez pas besoin de faire la navette tous les jours si cela vous semble trop long. Prévoyez ...

Rassemblement Matériel essentiel pour les promenades à vélo - mannequins

Rassemblement Matériel essentiel pour les promenades à vélo - mannequins

Les choses peuvent parfois mal tourner en vélo pour transporter avec vous quelques pièces simples de sorte que vous puissiez faire face aux problèmes que vous êtes le plus susceptible de rencontrer. Pour les longs trajets, vous aurez besoin de quelques extras pour tirer le meilleur parti de votre voyage. ...

S'entraîner avec des équipements de cyclisme - des mannequins

S'entraîner avec des équipements de cyclisme - des mannequins

Comme toute activité, vous devez rassembler certaines pièces d'équipement pour obtenir le plus du cyclisme et de rester en sécurité pendant que vous le faites. Assurez-vous que les pièces suivantes sont sur votre liste de courses lorsque vous sortez pour acheter votre vélo: Casque: Le port du casque n'est pas obligatoire mais la plupart des gens ...

Le choix des éditeurs

En utilisant le menu Select pour affiner les sélections dans Photoshop Elements 9 - les nuls

En utilisant le menu Select pour affiner les sélections dans Photoshop Elements 9 - les nuls

Vous pouvez utiliser le Sélectionnez le menu dans Photoshop Elements pour modifier et affiner les sélections en agrandissant, en réduisant, en adoucissant, en inversant, en agrandissant et en saisissant des pixels de même couleur. Sélectionner tout ou rien Les commandes Sélectionner tout et Désélectionner sont des commandes simples. Pour sélectionner tout dans votre image, choisissez Sélectionner → Tout ou appuyez sur Ctrl + A (cmd + A sur le Mac). Pour ...

Afficher plusieurs documents dans Photoshop Elements 10 - des mannequins

Afficher plusieurs documents dans Photoshop Elements 10 - des mannequins

Pour travailler sur n'importe quelle image dans l'un des éditeurs. Vous devez vous familiariser avec le déplacement de l'interface Éléments et l'affichage des photos dans la fenêtre principale de l'image. En mode Édition complète, vous remarquerez que lorsque plusieurs images sont ouvertes, leurs noms de fichiers sont répertoriés en haut de la fenêtre d'image. ...

Travaillant avec Adobe Premiere Elements - les mannequins

Travaillant avec Adobe Premiere Elements - les mannequins

Plusieurs options dans les panneaux Partager et Créer nécessitent Adobe Premiere Elements. Les éléments dénommés Graver DVD vidéo / BluRay, Partage vidéo en ligne et Téléphones mobiles et lecteurs requièrent tous Adobe Premiere Elements. Si l'un de ces éléments vous intéresse, vous pouvez télécharger un essai gratuit d'Adobe Premiere Elements et utiliser ...

Le choix des éditeurs

Cisco Networking: Connexion via un câble de survol - Les nuls

Cisco Networking: Connexion via un câble de survol - Les nuls

Vous permettent probablement de configurer votre appareil Cisco une connexion directe par câble série via un câble Cisco de survol - le câble bleu étrange que vous obtenez avec chacun de vos périphériques gérés, comme indiqué dans l'illustration suivante. Pour utiliser ce câble, vous devez avoir un port série à 9 broches sur ...

Cisco Networking: conversion binaire en base 16 (hexadécimal) - nuls

Cisco Networking: conversion binaire en base 16 (hexadécimal) - nuls

La conversion de binaire Base 16 (hexadécimal) est plus facile que la conversion binaire en décimal. La chose la plus étrange à propos de l'hexadécimal est qu'il y a plus de dix nombres (zéro à neuf), donc vous devez utiliser les caractères supplémentaires suivants: A (10), B (11), C (12), D (13), E (14) et F (15) ...

Cisco Networking: Convertir binaire en base 8 (octal) - mannequins

Cisco Networking: Convertir binaire en base 8 (octal) - mannequins

Conversions binaires en octales sont en fait assez facile, plus facile que binaire à base de conversion 10. Cela est dû au fait que les nombres octaux peuvent être gérés en regroupant simplement vos nombres binaires en ensembles de trois. Par exemple, commencez par le nombre binaire 11010011 de la section précédente, résultat de la conversion de ...