Maison > interface Web > js tutoriel > le corps du texte

Comment implémenter WeChat Jump Game à l'aide de Three.js

亚连
Libérer: 2018-06-13 17:34:01
original
4593 Les gens l'ont consulté

Le projet s'est terminé récemment et j'étais très libre, alors j'ai essayé d'imiter WeChat Tiaoyitiao et j'ai écrit une version minimaliste du jeu. Est-ce simple ? Vous pouvez vous référer à cet article

Alors, qu'est-ce que c'est ? est-ce simple ? C'est presque aussi simple que ce qui suit

Adresse du code source : github.com/luosijie/th…

Comme c'est la première fois que j'essaie d'écrire un jeu, je ne sais pas si la routine est correcte. Ne le prenez pas trop au sérieux. Il n'est pas recommandé de prévisualiser sur les téléphones mobiles. Les pièges n'ont pas encore été comblés

Voici le processus de mise en œuvre

Analyse du jeu

Analysez d'abord quels éléments sont nécessaires pour un tel jeu

  • Trois éléments essentiels de Three.js : scène, éclairage, caméra

  • les blocs les uns après les autres

  • Celui qui peut sauter, Ou appeler le joueur

  • ci-dessus

Processus de jeu

  • Initialiser une scène avec un saut et 2 blocs

  • Cliquez sur la souris pour stocker valeur énergétique

  • Relâchez la souris, et celui qui saute sautera en fonction de la valeur énergétique et de la direction du deuxième bloc

  • Quand celui qui saute tombe sur le plan supérieur du bloc, il sera jugé en fonction de sa position. Que le saut soit réussi ou échoué

  • Après réussite, passez à l'étape suivante. il échoue, effectuez différentes méthodes de chute selon la position

Concernant la collision dans le jeu, nous devons considérer ces situations

1. Tomber au milieu de deux blocs

2 . Tomber sur le bord supérieur gauche du bloc sauteur

<.>

3. Tomber sur le bord inférieur du bloc suivant à gauche

4. Tomber sur le bord supérieur du bloc suivant à gauche

5. Tomber sur le bord supérieur du côté droit du bloc de saut

6. bloc suivant à droite

7. Tomber sur le bord supérieur du bloc suivant à droite

Code

Si vous êtes intéressé, veuillez vous déplacer vers github

Structure principale

var Game = function () {
 ...
}
Game.prototype = {
 init: // 初始化
 restart: // 重新开始
 addSuccessFn: // 成功进入下一步,执行外部函数, 用于更新分数
 addFailedFn: // 游戏失败, 执行外部函数, 用于显示失败弹窗
 _createJumper: // 创建 会跳的那个
 _createCube: // 创建方块
 _setLight: // Three.js设置光照
 _setCamera: // Three.js设置相机
 _setRenderer: // Three.js设置渲染器
 _render: // Three.js 执行渲染
 _createHelpers: // Three.js场景辅助工具
 _checkUserAgent: // 检测是否是移动端
 _handleWindowResize: // 窗口缩放绑定函数
 _handleMousedown: // 鼠标按下绑定函数
 _handleMouseup: // 鼠标松开绑定函数
 _fallingRotate: // 会跳的那个 摔落动画
 _falling: // 会跳的那个 摔落
 _checkInCube: // 判断落点位置
 _updateCameraPos: // 更新相机坐标参数
 _updateCamera: // 更新相机
 _setSize: // 设置画布尺寸
}
Copier après la connexion
Appeler

var game = new Game(success,failed)
game.init()
game.addSuccessFn(success)
game.addFailedFn(failed)
...
// 游戏重新开始,执行函数
function restart () {
 ...
}
// 游戏失败执行函数
function failed(){
 ...
}
// 游戏成功,更新分数
function success (score) {
 ...
}
Copier après la connexion
J'ai compilé ce qui précède pour vous, j'espère que cela vous sera utile à l'avenir.

Articles associés :

Comment référencer les icônes de police Ali dans vue

Utiliser le pool de connexion MySQL via Node.js

Comment utiliser ajax pour afficher une page dans vue.js

Requête ajax + rendu vue.js + chargement de page

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!