Avant de commencer, vous pouvez voir le jeu sur itch.io
Points de base
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:
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!