Maison > interface Web > js tutoriel > Space Defender - partie mise en place du projet

Space Defender - partie mise en place du projet

WBOY
Libérer: 2024-07-21 00:02:30
original
719 Les gens l'ont consulté

Dans un article précédent, je vous ai montré comment mettre en place un projet PixiJS avec Vite et TypeScript. Dans cet article, nous allons créer un jeu de défenseur spatial simple basé sur cette configuration.

Pour ce projet, je suppose que vous avez des connaissances de base sur la programmation en TypeScript/JavaScript. Et comme nous nous concentrons sur PixiJS, je ne me concentrerai pas trop sur le côté HTML/CSS.

Le code source final se trouve dans mon référentiel GitHub et si vous souhaitez jouer au jeu, vous pouvez le trouver ici.

Mise en place du projet

Si vous n'avez pas encore configuré de projet PixiJS avec Vite et TypeScript, je vous recommande de lire d'abord mon article précédent dans lequel j'explique comment le configurer et le faire fonctionner.

Configurons rapidement le fichier index.html avec le contenu dont nous avons besoin pour ce projet. Remplacez le contenu du fichier

élément avec ce qui suit :

<div id="app">
    <div id="gameHud">
        <div>
            Lives: <span id="gameLives"></span>
        </div>
        <div>
            Level: <span id="gameLevel"></span>
        </div>
        <div>
            Score: <span id="gameScore"></span>
        </div>
    </div>
    <div id="game">

    </div>
</div>
Copier après la connexion

Ce sera la structure de notre jeu, nous avons un HUD (Heads Up Display) qui montrera la vie, le niveau et le score du joueur. Et un conteneur de jeu dans lequel nous rendrons le jeu. Dans la partie 4, nous commencerons à l'utiliser.

Ensuite, nous devons appliquer du CSS à cela pour qu'il soit bien affiché à l'écran. Accédez à la feuille de style appelée styles.css dans le dossier src et ajoutez le contenu suivant :

body {
    margin: 0;
    background-color: darkgrey;
}

#app {
    height: 100vh;
    width: 480px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

#gameHud {
    display: flex;
    width: 100%;
    padding: 10px;
    background-color: #333;
    color: white;

    > div {
        flex: 1;
    }
}
Copier après la connexion

Préparation de l'écran de jeu

Super ! Maintenant que nous avons la structure de base en place, commençons par créer l'écran de jeu. Nous devons avoir une variable qui contient l'élément conteneur du jeu afin que le jeu sache où insérer le canevas du jeu dans le DOM.

(async () => {
    let gameContainer = document.getElementById("app");

    // ....
});
Copier après la connexion

Après cela, nous devons mettre à jour la taille de notre application pour qu'elle corresponde à la taille du jeu que nous voulons, dans notre cas, nous voulons un jeu de 480 de large et 720 de haut. Nous devons donc mettre à jour l'appel app.init pour qu'il corresponde à cette taille.

await app.init({
    width: 480,
    height: 720,
});
Copier après la connexion

Et puis remplacez

document.body.appendChild(app.canvas);
Copier après la connexion

avec

gameContainer.appendChild(app.canvas);
Copier après la connexion

Nous avons maintenant un écran de jeu d'une taille de 480 x 720 pixels et affiché au centre de l'écran.

Dans la partie suivante, nous commencerons à créer le vaisseau du joueur et à le faire bouger et tirer.



N'oubliez pas de vous inscrire à ma newsletter pour être le premier informé des tutoriels similaires à ceux-ci.

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!

source:dev.to
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