


Révolution rétro: construire un clone pong dans l'unité
Feb 19, 2025 am 09:01 AMTutoriel 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>(); // ... (根據(jù)球的位置移動(dòng)敵人的代碼) }
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à 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)

La principale préoccupation concernant les grandes technologies expérimentant l'intelligence artificielle (IA) n'est pas qu'elle pourrait dominer l'humanité. Le vrai problème réside dans les inexactitudes persistantes des modèles de grands langues (LLM) tels que le chatppt d'Open AI, les Gémeaux de Google et

Plus l'intelligence artificielle plus avancée (AI) devient, plus elle a tendance à "halluciner" et à fournir des informations fausses ou inexactes. Selon la recherche par Openai, ses modèles de raisonnement les plus récents et puissants - O3 et O4-MINI - ont exhibés H

La National Crime Agency (NCA) du Royaume-Uni a arrêté quatre personnes soup?onnées de participation aux cyberattaques ciblant les marques et Spencer (M&S), Co-Op et Harrods., selon une déclaration, les suspects incluent deux hommes de 19 ans, un 17 ans-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-On

Les modèles de raisonnement de l'intelligence artificielle (IA) ne sont pas aussi capables qu'ils apparaissent. En réalité, leur performance se décompose complètement lorsque les taches deviennent trop complexes, selon les chercheurs d'Apple.Reassinging Models comme Anthropic's Claude, Open

La cryptographie post-quantum est devenue une priorité absolue pour les dirigeants de la cybersécurité, mais des recherches récentes indiquent que certaines organisations ne traitent pas la menace avec la gravité qu'il exige.

Les attaques de ransomwares apportent avec eux un co?t de récupération moyen de 4,5 millions de dollars, selon une récente enquête, qui a également révélé qu'un nombre important d'entreprises ont été affectés par le malware au cours de la dernière année.

Red Hat a introduit une nouvelle plate-forme en libre-service con?ue pour offrir un accès plus facile à son programme de développeurs.

Investir dans un nouveau site Web ou une plate-forme numérique est essentiel pour toute entreprise. Que vous lanciez une startup, que vous reconstruisiez un site hérité ou que vous prolongez votre portée avec un nouveau magasin de commerce électronique, l'équipe que vous choisissez pour donner vie à votre vision peut faire ou
