


Tutoriel de clonage Unity Pong: Construire des jeux classiques étape par étape
Avant de commencer, vous pouvez voir le jeu sur itch.io
Points de base
- Construire un clone Pong dans Unity comprend plusieurs étapes clés, notamment la configuration de l'environnement de jeu, l'ajout de la saisie des joueurs, la gestion des balles et les collisions de bordure, la mise en œuvre de l'IA ennemie, la génération de balles et l'ajout d'instructions de texte de base.
- Les paramètres d'environnement de jeu incluent la création d'un nouveau projet 2D dans Unity, la définition du rapport d'aspect de l'écran de jeu sur 4: 3 et la création de dossiers pour les scripts, les sprites, les préfabs et les matériaux. Vous devez télécharger le sprite et l'ajouter au dossier Sprite et ajuster les unités par pixel pour assurer une apparence claire et propre.
- L'entrée du lecteur est ajoutée via un script C # appelé "PlayerController", qui définit la vitesse et la gamme du mouvement du joueur du lecteur. Ajoutez Box Collider 2D au joueur GameObject pour gérer les collisions.
- Les collisions de balle et de frontière sont gérées en créant un matériau Physics2d appelé "Bounce", avec l'élasticité définie sur 1 et la friction définie sur 0. Ajoutez Circle Collider 2D et RigidBody 2D à l'objet Ball Game pour gérer son interaction avec l'environnement.
- L'AI ennemi est implémenté via un script C # appelé "EnemyController", qui définit la vitesse de l'ennemi et gère les mouvements en réponse à la position du ballon. La portée de l'ennemi est également définie dans ce script.
- La génération de balle est réalisée en créant un objet de jeu "BallSpawner" et un script C # appelé "BallSpawnerController". Ce script vérifie la présence d'une balle et, sinon, crée une nouvelle balle.
Analyse du jeu Pong
Pong est l'un des premiers jeux vidéo et le premier jeu commercial réussi. Lorsque Pong a été créé pour la première fois, il est très probable que les développeurs aient eu du mal avec la logique de code, mais de nos jours, vous pouvez faire un simple jeu Pong à deux joueurs avec un appel de méthode, un collision et un sprite. Une fois que vous avez décidé de créer un jeu de pong solo, la difficulté de faire Pong augmentera. Dans ce tutoriel, nous créerons le gameplay de base de Pong et décomposerons une alternative IA très simple qui ajoute toujours à la valeur du jeu.
Nous devons demander, quels sont les éléments principaux du gameplay de Pong? Voici une liste de réponses à cette question:
- Entrée du joueur - Nous voulons que les joueurs puissent déplacer leur raquette de haut en bas pour faire un coup.
- Collision Ball - Lorsque la balle frappe une raquette ou une limite, il ne peut pas perdre de vitesse.
- Collision frontalière - Le ballon doit être capable de rebondir du haut et du bas de l'écran afin qu'il ne quitte pas la zone de jeu.
- ennemi AI - Si l'ennemi se trouve à l'autre bout de l'écran et ne bouge pas, la jouabilité du jeu est presque nulle.
- Générer le ballon - Lorsque le ballon frappe l'une des limites derrière la raquette, nous avons besoin de se régénérer afin que nous puissions continuer le jeu.
- Détection de la zone de collision Ball-to-Racquet - Cela permet à la balle de rebondir sur la raquette à un angle unique afin que nous puissions mieux viser la balle lorsque nous frappons la raquette avec.
Avec cette liste, nous pouvons commencer à écrire des programmes de jeu.
Veuillez noter que tout nombre lié à la position, à la rotation, au zoom, etc. de l'objet de jeu est relatif et peut devoir être modifié en fonction de vos paramètres spécifiques.
Définissez le jeu
Maintenant que nous avons analysé les principes de base de Pong, nous pouvons commencer à mettre en place le jeu. Ouvrez l'unité et créez un nouveau projet 2D. Une fois l'éditeur ouvert, définissez le rapport d'aspect de l'écran de jeu sur 4: 3. Nous utilisons 4: 3 car c'est l'un des rapports d'écran les plus courants et est l'un des rapports standard les plus proches. Dans le panneau Ressources, créez quatre dossiers appelés scripts, sprites, préfabs et matériaux. Ces dossiers seront utilisés pour économiser toutes nos ressources de jeu.
Téléchargez l'image requise du jeu et ajoutez-le au dossier "Sprite" (peut être fait avec Drag and Drop). L'image que nous venons d'ajouter sera le Sprite (Interactive Game Object) utilisé dans le jeu.
Nous devons modifier les unités par pixels du sprite afin qu'elles répondent aux normes. J'utilise habituellement 64 pixels par pixel, car cela rendra la plupart des sprites clairs et propres et gardent leur taille relative. Vous pouvez considérer les unités par pixels comme une densité de pixels allouée dans un espace 1 × 1 dans l'éditeur d'unité.
Fixons les unités du carré par pixel à 64 et les unités du cercle par pixel à 128. Nous pouvons continuer à ajouter ces trois images au panneau de hiérarchie.
Maintenant, nous devons nommer chaque ressource et définir leurs propriétés et étiquettes initiales. Vous pouvez nommer le "joueur" du bloc bleu et régler la position X du joueur sur 6 et son rapport de l'échelle X à 0,2.
Nous devons créer une balise pour séparer l'objet de jeu de raquette des autres objets de jeu. D'une manière générale, vous pouvez considérer les balises comme des catégories d'objets de jeu. Cliquez sur UNTAGGED (sous le nom du joueur) et sélectionnez Ajouter une balise. Créez une nouvelle étiquette appelée "Paddle", resélectionnez l'objet de jeu du joueur et définissez sa balise sur paddle.
Nommez le bloc rouge "ennemi". Réglez la position X de l'ennemi à -6 et son ratio de échelle X à 0,2. Faites la pagaie de l'étiquette des objets de jeu ennemie.
Nommez le cercle gris "balle" et créez une nouvelle étiquette appelée "balle". Assurez-vous de régler l'étiquette de l'objet Ball sur Ball.
(Les étapes suivantes ne sont fournies qu'avec un aperçu des étapes et des extraits de code clés en raison des limitations de l'espace. Veuillez vous référer au texte d'origine ou le compléter vous-même en détail)
Ajouter une entrée du lecteur
Créez un script C # appelé "PlayerController" et ajoutez le code suivant (contrôle le mouvement de la raquette du lecteur):
public float speed = 10; public float topBound = 4.5F; public float bottomBound = -4.5F; void FixedUpdate () { float movementSpeedY = speed * Input.GetAxis("Vertical") * Time.deltaTime; transform.Translate(0, movementSpeedY, 0); // ... (边界限制代码) }
Collision de balle
Créer un matériau Physics2d appelé "Bounce", définir son élasticité sur 1 et frotter à 0. Ajoutez Circle Collider 2D et RigidBody 2D à l'objet Ball Game et définissez le matériau sur "Bounce".
Collision de bordure
Créez quatre objets de jeu vides en tant que limites (bouton gauche, droit, Topbound, Bottombound), ajoutez le collision Box 2D et définissez ses propriétés. Créez un script appelé "BoundController" qui détecte la balle en collision avec la limite et détruit la balle.
ennemi ai
Créez un script appelé "EnemyController" qui contrôle le mouvement de la raquette de l'ennemi afin qu'il suit le ballon.
public float speed = 1.75F; Transform ball; Rigidbody2D ballRig2D; void FixedUpdate () { ball = GameObject.FindGameObjectWithTag("Ball").transform; ballRig2D = ball.GetComponent<Rigidbody2D>(); // ... (根据球的位置移动敌人的代码) }
générer une balle
Créez un objet de jeu vide "BallSpawner" et créez un script appelé "BallSpawnerController" pour régénérer le ballon lorsqu'il disparaît.
Ajouter du texte de base
Créez un objet texte d'interface utilisateur pour afficher la description du jeu.
Conclusion
Vous avez maintenant créé avec succès un clone de base solo solo dans Unity2d. Pour plus d'entraînement, essayez de réfléchir aux moyens d'améliorer le jeu - par exemple, en ajoutant l'accélération au ballon (plus le ballon frappe, plus la balle est rapide), ajoutant une inertie à la raquette, ajoutant des niveaux de difficulté en augmentant la vitesse de la vitesse de L'ennemi, et ainsi de suite.
(La partie FAQ est omise ici en raison de la durée de l'article. Le texte d'origine a inclus des réponses détaillées FAQ)
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!

Restez informé des dernières tendances technologiques avec ces meilleurs bulletins de développeur! Cette liste organisée offre quelque chose pour tout le monde, des amateurs d'IA aux développeurs assaisonnés du backend et du frontend. Choisissez vos favoris et gagnez du temps à la recherche de rel

Ce tutoriel vous guide dans la création d'un pipeline de traitement d'image sans serveur à l'aide de services AWS. Nous allons créer un frontend Next.js déployé sur un cluster ECS Fargate, en interagissant avec une passerelle API, des fonctions lambda, des seaux S3 et DynamoDB. Ème

Ce programme pilote, une collaboration entre le CNCF (Cloud Native Computing Foundation), Ampere Computing, Equinix Metal et ACTUTIE, rationalise ARM64 CI / CD pour les projets GitHub CNCF. L'initiative répond aux problèmes de sécurité et aux performances LIM


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

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

MantisBT
Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

mPDF
mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire
