Outils pour utilisateurs

Outils du site


issue173:python

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
issue173:python [2021/09/29 08:46] d52frissue173:python [2021/10/03 17:09] (Version actuelle) andre_domenech
Ligne 2: Ligne 2:
 (Thanks to https://www.bestproducts.com/tech/gadgets/g821/best-pc-game-controllers/ for the image above.)** (Thanks to https://www.bestproducts.com/tech/gadgets/g821/best-pc-game-controllers/ for the image above.)**
  
-Mon fils adulte (35 ans) est administrateur de réseau pour la société pour laquelle il travaille. Il travaille avec un grand nombre de serveurs et répond à tous les besoins de son entreprise et de ses employés en matière de réseau. J'ai commencé à lui enseigner l'informatique lorsqu'il avait 10 ans. Il a (avec un tout petit peu d'aide de ma part) construit son premier ordinateur à partir d'une carte mère, d'un disque dur, de deux lecteurs de disquettes et d'une carte vidéo. À cette époque, je vendais des ordinateurs sur mesure et c'est lui qui s'est chargé de la construction de base, à l'exception des cartes CPU et mémoire. Il est également un joueur passionné. Quand il avait 10 ans, j'étais le vieux père méchant qui ne voulait pas le laisser avoir une console de jeu (je crois que c'était une Nintendo) parce que, pour  la plupart des jeux auxquels il voulait jouer, il pouvait le faire sur son ordinateur. Pendant quelques années, il ne s'est pas vraiment rendu compte de la situation, mais il était partiellement apaisé tant que je lui fournissais des jeux de plus en plus compliqués au fur et à mesure qu'il devenait plus habile. De mon côté, je n'ai jamais vraiment pu jouer aux jeux qu'il appréciait. La ou les manettes de jeu me déroutaient et je n'arrivais jamais à savoir sur quel bouton il fallait appuyer.+Mon fils adulte (35 ans) est administrateur de réseau pour la société pour laquelle il travaille. Il travaille avec un grand nombre de serveurs et répond à tous les besoins de son entreprise et des employés en matière de réseau. J'ai commencé à lui enseigner l'informatique lorsqu'il avait 10 ans. Il a (avec un tout petit peu d'aide de ma part) construit son premier ordinateur à partir d'une carte mère, d'un disque dur, de deux lecteurs de disquettes et d'une carte vidéo. À cette époque, je vendais des ordinateurs sur mesure et c'est lui qui s'est chargé de la construction de base, à l'exception des cartes CPU et mémoire. Il est également un joueur passionné. Quand il avait 10 ans, j'étais le vieux père méchant qui ne voulait pas le laisser avoir une console de jeu (je crois que c'était une Nintendo) parce que, pour  la plupart des jeux auxquels il voulait jouer, il pouvait le faire sur son ordinateur. Pendant quelques années, il ne s'est pas vraiment rendu compte de la situation, mais il était partiellement apaisé tant que je lui fournissais des jeux de plus en plus compliqués au fur et à mesure qu'il devenait plus habile. De mon côté, je n'ai jamais vraiment pu jouer aux jeux qu'il appréciait. La ou les manettes de jeu me déroutaient et je n'arrivais jamais à savoir sur quel bouton il fallait appuyer.
 (Merci à https://www.bestproducts.com/tech/gadgets/g821/best-pc-game-controllers/ pour l'image ci-dessus). (Merci à https://www.bestproducts.com/tech/gadgets/g821/best-pc-game-controllers/ pour l'image ci-dessus).
  
Ligne 11: Ligne 11:
 Before we get into actually using and installing Arcade, we need to discuss virtual environments.** Before we get into actually using and installing Arcade, we need to discuss virtual environments.**
  
-Je l'admets. Quand il s'agit de manettes de jeux, je suis un empoté. Même les jeux qui peuvent être joués sur un clavier d'ordinateur, je suis nul. Jusqu'à il y a quelques années, si vous me donniez une guitare, je pouvais jouer et faire des accords avec presque n'importe quel non-professionnel. Mais si vous me donnez une manette de jeu, je la remets sur la table aussi vite que je peux.+Je l'avoue. Quand il s'agit de manettes de jeux, je suis un empoté. Je suis nul, même aux jeux qui peuvent être joués sur un clavier d'ordinateur. Jusqu'à il y a quelques années, si vous me donniez une guitare, je pouvais jouer et faire des accords avec presque n'importe quel non-professionnel. Mais si vous me donnez une manette de jeu, je la repose sur la table aussi vite que je peux.
  
-Cela fait longtemps que je voulais faire un article sur la création de jeux en Python et, il y a quelques mois (FCM168 partie 116 avril 2021), j'ai montré un jeu simple basé sur du texte lorsque j'ai parlé de la correspondance de motifs qui arrive dans Python 3.10. Les jeux en mode texte, je peux y jouer. Je me souviens aussi avoir parlé de PyGame il y a de nombreuses années. ENFIN, je peux commencer à parler (comme mon fils le dirait) de VRAIS jeux, avec des graphiques et tout le reste. Je parle de la bibliothèque Arcade pour Python.+Cela fait longtemps que je voulais faire un article sur la création de jeux en Python et, il y a quelques mois (FCM168 partie 116 avril 2021), j'ai montré un jeu simple basé sur du texte lorsque j'ai parlé de la correspondance de motifs qui arrive dans Python 3.10. Les jeux en mode texte, je peux y jouer. Je me souviens aussi d'avoir parlé de PyGame il y a de nombreuses années. ENFIN, je peux commencer à parler (comme mon fils le dirait) de VRAIS jeux, avec des graphismes et tout le reste. Je parle de la bibliothèque Arcade pour Python.
  
 Avant d'aborder l'utilisation et l'installation d'Arcade, nous devons parler des environnements virtuels. Avant d'aborder l'utilisation et l'installation d'Arcade, nous devons parler des environnements virtuels.
Ligne 37: Ligne 37:
 Environnements virtuels Environnements virtuels
  
-Nous savons tous que Python utilise pip pour installer les bibliothèques (à moins que vous n'utilisiez Anaconda, auquel cas vous utilisez généralement Conda). Cependant, il arrive souvent qu'un paquet que vous voulez essayer ou développer ait des dépendances qui entrent en conflit avec des paquets que vous avez déjà installés. Souvent, vous ne saurez pas qu'il y a des problèmes jusqu'à ce que quelque chose échoue. Python, pyenv et Anaconda fournissent tous des environnements virtuels pour contourner ce problème. En gros, lorsque vous créez un environnement virtuel, vous obtenez une version propre de Python avec juste le strict minimum de paquets installés. Je vais vous montrer comment configurer un environnement virtuel pour pyenv et Python. Si vous utilisez Anaconda, il est facile de trouver les étapes avec une simple recherche sur le Web.+Nous savons tous que Python utilise pip pour installer les bibliothèques (à moins que vous n'utilisiez Anaconda, auquel cas vous utilisez généralement Conda). Cependant, il arrive souvent qu'un paquet que vous voulez essayer ou utiliser pour le développement ait des dépendances qui entrent en conflit avec des paquets que vous avez déjà installés. Souvent, vous ne saurez pas qu'il y a des problèmes jusqu'à ce que quelque chose échoue. Python, pyenv et Anaconda fournissent tous des environnements virtuels pour contourner ce problème. En gros, lorsque vous créez un environnement virtuel, vous obtenez une version propre de Python avec juste le strict minimum de paquets installés. Je vais vous montrer comment configurer un environnement virtuel pour pyenv et Python. Si vous utilisez Anaconda, il est facile de trouver les étapes avec une simple recherche sur le Web.
  
 Pyenv Pyenv
Ligne 83: Ligne 83:
 (venv379) greg@earth:~/Desktop/Pyenv-Virt1$** (venv379) greg@earth:~/Desktop/Pyenv-Virt1$**
  
-Créez l'environnement virtuel et donnez-lui un nom. Vous pouvez lui donner à peu près le nom que vous voulez. J'aime faire précéder le nom de "venvpour pouvoir m'en souvenir facilement.+Créez l'environnement virtuel et donnez-lui un nom. Vous pouvez lui donner à peu près le nom que vous voulez. J'aime faire précéder le nom de « venv » pour pouvoir m'en souvenir facilement.
  
 $ pyenv virtualenv 3.7.9 venv379 $ pyenv virtualenv 3.7.9 venv379
Ligne 131: Ligne 131:
 greg@earth:~/Desktop/Python-Virt1$ pip install virtualenv** greg@earth:~/Desktop/Python-Virt1$ pip install virtualenv**
  
-Notez que l'invite de votre terminal a changé. Cela vérifie que vous êtes dans un environnement virtuel. Après cela, vous pouvez installer tous les paquets que vous voulez. Lorsque vous avez terminé, désactivez l'environnement virtuel avec pyenv deactivate. Votre invite revient à la normale.+Notez que l'invite de votre terminal a changé, ce qui vérifie que vous êtes dans un environnement virtuel. Après cela, vous pouvez installer tous les paquets que vous voulez. Lorsque vous avez terminé, désactivez l'environnement virtuel avec pyenv deactivate. Votre invite revient à la normale.
  
 Python Python
Ligne 189: Ligne 189:
 greg@earth:~/Desktop/Python-Virt1$  greg@earth:~/Desktop/Python-Virt1$ 
  
-Créez votre environnement virtuel avec+Créez votre environnement virtuel avec :
  
 python -m venv env python -m venv env
Ligne 227: Ligne 227:
 $ pip install arcade $ pip install arcade
  
-Si tout se passe bien, votre prochaine étape sera de télécharger le tutoriel platformer. Vous pouvez le trouver à l'adresse https://github.com/pythonarcade/arcade. Je vous suggère d'obtenir le dépôt complet en utilisant l'option download zip. Une fois que vous avez téléchargé le référentiel, décompressez-le et accédez au tutoriel qui se trouve dans le référentiel à l'adresse /arcade/examples/platform_tutorial. Copiez l'ensemble du dossier dans le dossier que vous avez créé pour votre environnement virtuel. Enfin, à l'aide d'une fenêtre de terminal, passez dans votre environnement virtuel, puis dans le dossier platform_tutorial.+Si tout se passe bien, votre prochaine étape sera de télécharger le tutoriel de plateforme. Vous pouvez le trouver à l'adresse https://github.com/pythonarcade/arcade. Je vous suggère d'obtenir le dépôt complet en utilisant l'option download zip. Une fois que vous avez téléchargé le dépôt, décompressez-le et accédez au tutoriel qui s'trouve à l'adresse /arcade/examples/platform_tutorial. Copiez l'ensemble du dossier dans le dossier que vous avez créé pour votre environnement virtuel. Enfin, à l'aide d'une fenêtre de terminal, passez dans votre environnement virtuel, puis dans le dossier platform_tutorial.
  
-Vous devriez voir environ 17 fichiers dans votre dossier. Il existe un tutoriel complet qui traite de la plupart de ces fichiers à l'adresse https://api.arcade.academy/en/latest/examples/platform_tutorial/index.html. Chaque étape du tutoriel est centrée sur l'un des fichiers source. Au lieu de vous indiquer le tutoriel et de vous dire d'apprendre par vous-même, je vais essayer de distiller certaines informations en examinant les deux premiers fichiers de code source fournis. Nous allons commencer par examiner le tout premier fichier 01_open_window.py.+Vous devriez voir environ 17 fichiers dans le dossier. Il existe un tutoriel complet qui traite de la plupart de ces fichiers à l'adresse https://api.arcade.academy/en/latest/examples/platform_tutorial/index.html. Chaque étape du tutoriel est centrée sur l'un des fichiers source. Au lieu de vous indiquer le tutoriel et de vous dire d'apprendre par vous-même, je vais essayer de distiller certaines informations en examinant les deux premiers fichiers de code source fournis. Nous allons commencer par examiner le tout premier fichier 01_open_window.py.
  
 **This file is a skeleton that creates a simple window and sets the background color. It provides you a nice starting point for creating your own games. **This file is a skeleton that creates a simple window and sets the background color. It provides you a nice starting point for creating your own games.
Ligne 248: Ligne 248:
 You will have to click the x in the title bar or do a <ctrl> c in the terminal to close the window.** You will have to click the x in the title bar or do a <ctrl> c in the terminal to close the window.**
  
-Ce fichier est un squelette qui crée une fenêtre simple et définit la couleur de fond. Il vous fournit un bon point de départ pour créer vos propres jeux.+Ce fichier est un squelette qui crée une fenêtre simple et définit sa couleur de fond. Il vous fournit un bon point de départ pour créer vos propres jeux.
  
 import arcade import arcade
Ligne 257: Ligne 257:
 SCREEN_TITLE = "Platformer" SCREEN_TITLE = "Platformer"
  
-Comme vous pouvez le voir, la fenêtre aura une largeur de 1000 pixels et une hauteur de 650 pixels et portera le titre Platformer  (Plate-forme). C'est assez simple. La prochaine chose à faire est de créer une classe Python qui contiendra votre jeu réel. Vous pouvez voir que la fonction __init__ contient le code qui définit l'écran actuel et la couleur de fond et que la fonction setup démarre/redémarre le jeu.+Comme vous pouvez le voir, la fenêtre aura une largeur de 1 000 pixels et une hauteur de 650 pixels et portera le titre Platformer (Plateforme). C'est assez simple. La prochaine chose à faire est de créer une classe Python qui contiendra votre vrai jeu. Vous pouvez voir que la fonction __init__ contient le code qui définit le véritable écran et la couleur de fond et que la fonction setup démarre/redémarre le jeu.
  
 Lorsque vous exécutez le programme squelette, vous verrez une fenêtre s'ouvrir avec un fond d'un bleu bleuet. Lorsque vous exécutez le programme squelette, vous verrez une fenêtre s'ouvrir avec un fond d'un bleu bleuet.
Ligne 263: Ligne 263:
 $ python 01_open_window.py $ python 01_open_window.py
  
-Vous devrez cliquer sur le x dans la barre de titre ou faire un <ctrl>c dans le terminal pour fermer la fenêtre.+Vous devrez cliquer sur le x dans la barre de titre ou faire un <ctrl> c dans le terminal pour fermer la fenêtre.
  
 **We will need to add some code in order to make the program show something other than just a pretty blue background. In your IDE or text editor, open the file 02_draw_sprites.py . This file is an expansion of the skeleton that we just ran. Between the constants at the top of the source code and the beginning of the class, you’ll see the following additional lines… **We will need to add some code in order to make the program show something other than just a pretty blue background. In your IDE or text editor, open the file 02_draw_sprites.py . This file is an expansion of the skeleton that we just ran. Between the constants at the top of the source code and the beginning of the class, you’ll see the following additional lines…
  
-# Constants used to scale our sprites from their original size+# Constants used to scale our sprites from their original size 
  
 CHARACTER_SCALING = 1 CHARACTER_SCALING = 1
Ligne 276: Ligne 276:
 These lines set the scaling for both the character sprite and the tiles. In the class, some code has been added to the class that sets up the character and some props. Between the super().__init__ line and the arcade.set_background_color line, you will see the following lines… These lines set the scaling for both the character sprite and the tiles. In the class, some code has been added to the class that sets up the character and some props. Between the super().__init__ line and the arcade.set_background_color line, you will see the following lines…
  
-# These are 'lists' that keep track of our sprites. Each sprite should+# These are 'lists' that keep track of our sprites. Each sprite should (Voici des « listes » qui gardent un suivi de nos sprites)
  
-# go into a list.+# go into a list. (entrer dans une liste)
  
 self.wall_list = None self.wall_list = None
Ligne 284: Ligne 284:
 self.player_list = None** self.player_list = None**
  
-Nous devrons ajouter un peu de code pour que le programme affiche autre chose qu'un joli fond bleu. Dans votre IDE ou votre éditeur de texte, ouvrez le fichier 02_draw_sprites.py. Ce fichier est une expansion du squelette que nous venons d'exécuter. Entre les constantes en haut du code source et le début de la classe, vous verrez les lignes supplémentaires suivantes...+Il faut ajouter un peu de code pour que le programme affiche autre chose qu'un joli fond bleu. Dans votre IDE ou votre éditeur de texte, ouvrez le fichier 02_draw_sprites.py. Ce fichier est une expansion du squelette que nous venons d'exécuter. Entre les constantes en haut du code source et le début de la classe, vous verrez les lignes supplémentaires suivantes 
 + 
 +# Constants used to scale our sprites from their original size (Les constantes utilisées pour redimensionner nos sprites à partir de leur taille originale)
  
-# Constants used to scale our sprites from their original size 
  
 CHARACTER_SCALING = 1 CHARACTER_SCALING = 1
Ligne 293: Ligne 294:
  
  
-Ces lignes définissent la mise à l'échelle à la fois pour le sprite du personnage et pour les tuiles. Dans la classe, du code a été ajouté à la classe qui met en place le personnage et certains accessoires. Entre la ligne super().__init__ et la ligne arcade.set_background_color, vous verrez les lignes suivantes...+Ces lignes définissent la mise à l'échelle à la fois pour le sprite du personnage et pour les tuiles. Dans la classe, du code a été ajouté à la classe qui met en place le personnage et certains accessoires. Entre la ligne super().__init__ et la ligne arcade.set_background_color, vous verrez les lignes suivantes :
  
-# These are 'lists' that keep track of our sprites. Each sprite should+# These are 'lists' that keep track of our sprites. Each sprite should (Voici des « listes » 
 + pour pouvoir suivre nos sprites. Chaque sprite devrait aller dans une liste.)
  
 # go into a list. # go into a list.
Ligne 318: Ligne 320:
 The next part of the code is very important in that it creates the player sprite. The actual sprite image can be anything you like. To help new users along, the good people that created Arcade, included a few sprite images that you might need in the actual distribution package. If you look in your virtual environment at the /env/lib/pythonx/site-packages/arcade/resources/images folder, you will see a number of subfolders that include various images that are already set up for you. Getting back to the code, you can see that the image locations are referenced when each image is defined as an arcade.Sprite. First, the player sprite is created.** The next part of the code is very important in that it creates the player sprite. The actual sprite image can be anything you like. To help new users along, the good people that created Arcade, included a few sprite images that you might need in the actual distribution package. If you look in your virtual environment at the /env/lib/pythonx/site-packages/arcade/resources/images folder, you will see a number of subfolders that include various images that are already set up for you. Getting back to the code, you can see that the image locations are referenced when each image is defined as an arcade.Sprite. First, the player sprite is created.**
  
-# Separate variable that holds the player sprite+# Separate variable that holds the player sprite (Variable séparée qui tient le sprite du joueur)
  
 self.player_sprite = None self.player_sprite = None
Ligne 330: Ligne 332:
 self.wall_list = arcade.SpriteList(use_spatial_hash=True) self.wall_list = arcade.SpriteList(use_spatial_hash=True)
  
-La partie suivante du code est très importante, car elle crée le sprite du joueur. L'image réelle du sprite peut être ce que vous voulez. Pour aider les nouveaux utilisateurs, les personnes qui ont créé Arcade ont inclus quelques images de sprites dont vous pourriez avoir besoin dans le paquet de distribution. Si vous regardez dans votre environnement virtuel dans le dossier /env/lib/pythonx/site-packages/arcade/resources/images, vous verrez un certain nombre de sous-dossiers qui incluent diverses images déjà configurées pour vous. Pour en revenir au code, vous pouvez voir que les emplacements des images sont référencés lorsque chaque image est définie comme un arcade.Sprite. Tout d'abord, le sprite du joueur est créé.+La partie suivante du code est très importante, car elle crée le sprite du joueur. L'image réelle du sprite peut être ce que vous voulez. Pour aider les nouveaux utilisateurs, les personnes qui ont créé Arcade ont inclus dans le paquet de distribution quelques images de sprites dont vous pourriez avoir besoin. Si vous regardez dans votre environnement virtuel dans le dossier /env/lib/pythonx/site-packages/arcade/resources/images, vous verrez un certain nombre de sous-dossiers qui incluent diverses images déjà configurées pour vous. Pour en revenir au code, vous pouvez voir que les emplacements des images sont référencés lorsque chaque image est définie comme un arcade.Sprite. Tout d'abord, le sprite du joueur est créé.
  
 **Finally, the on_draw function of our class is modified by adding the following lines to the bottom of the function (after the start_render() call)... **Finally, the on_draw function of our class is modified by adding the following lines to the bottom of the function (after the start_render() call)...
Ligne 342: Ligne 344:
 You can work through the rest of the tutorial which will get you a very basic, somewhat playable game in the file 17_views.py . When you run it, it should look something like this (bottom right) …** You can work through the rest of the tutorial which will get you a very basic, somewhat playable game in the file 17_views.py . When you run it, it should look something like this (bottom right) …**
  
-Enfin, la fonction on_draw de notre classe est modifiée en ajoutant les lignes suivantes au bas de la fonction (après l'appel start_render())...+Enfin, la fonction on_draw de notre classe est modifiée en ajoutant les lignes suivantes au bas de la fonction (après l'appel start_render()) :
  
-# Draw our sprites+# Draw our sprites (Dessiner nos sprites)
 self.wall_list.draw() self.wall_list.draw()
 self.player_list.draw() self.player_list.draw()
  
-Bien que cela ne crée rien d'autre qu'une image statique, vous pouvez voir qu'avec un peu de préparation et de réflexion, il est assez simple d'obtenir les bases d'un jeu. Lorsque vous exécutez le programme 02_draw_sprites.py, vous verrez quelque chose qui ressemble à ceci (en bas à gauche)...+Bien que cela ne crée rien d'autre qu'une image statique, vous pouvez voir qu'avec un peu de préparation et de réflexion, il est assez simple d'obtenir les bases d'un jeu. Lorsque vous exécutez le programme 02_draw_sprites.py, vous voyez quelque chose qui ressemble à ce qui est montré en bas à gauche.
  
-Vous pouvez travailler sur le reste du tutoriel qui vous permettra d'obtenir un jeu très basique et quelque peu jouable dans le fichier 17_views.py . Lorsque vous l'exécutez, il devrait ressembler à quelque chose comme ceci (en bas à droite) ...+Vous pouvez suivre le reste du tutoriel qui vous permettra d'obtenir un jeu très basique et un peu jouable dans le fichier 17_views.py . Lorsque vous l'exécutez, il devrait ressembler à quelque chose comme ce qui est présenté en bas à droite.
  
 **There is another program you should consider downloading, which is a map editor. Step 9 of the tutorial gives you some basic instructions on using the map editor and where you can download it. They also give you a link to the documentation for the tile/map editor to help you along. **There is another program you should consider downloading, which is a map editor. Step 9 of the tutorial gives you some basic instructions on using the map editor and where you can download it. They also give you a link to the documentation for the tile/map editor to help you along.
Ligne 360: Ligne 362:
 Il existe un autre programme que vous devriez envisager de télécharger, à savoir un éditeur de cartes. L'étape 9 du tutoriel vous donne des instructions de base sur l'utilisation de l'éditeur de cartes et vous indique où le télécharger. Elle vous donne également un lien vers la documentation de l'éditeur de tuiles et de cartes pour vous aider. Il existe un autre programme que vous devriez envisager de télécharger, à savoir un éditeur de cartes. L'étape 9 du tutoriel vous donne des instructions de base sur l'utilisation de l'éditeur de cartes et vous indique où le télécharger. Elle vous donne également un lien vers la documentation de l'éditeur de tuiles et de cartes pour vous aider.
  
-Je fournirai sur mon dépôt un fichier zip pour les 17 fichiers sources du code du tutoriel dont vous avez besoin pour commencer, mais je vous suggère fortement de télécharger le dépôt d'Arcade. Il y a une quantité énorme d'exemples de fichiers qui non seulement vous donneront une grande quantité d'informations, mais aussi devraient vous inspirer pour aller de l'avant. Vous pouvez trouver le code sur mon dépôt github à l'adresse https://github.com/gregwa1953/FCM-173.+Je fournirai sur mon dépôt un fichier zip pour les 17 fichiers sources du code du tutoriel dont vous avez besoin pour commencer, mais je vous suggère fortement de télécharger le dépôt d'Arcade. Il y a une quantité énorme d'exemples de fichiers quinon seulement vous donneront une grande quantité d'informations, mais aussi devraient vous inspirer pour aller de l'avant. Vous pouvez trouver le code sur mon dépôt github à l'adresse https://github.com/gregwa1953/FCM-173.
  
 Jusqu'à la prochaine fois, comme toujours, restez en sécurité, en bonne santé, positif et créatif ! Jusqu'à la prochaine fois, comme toujours, restez en sécurité, en bonne santé, positif et créatif !
 +
 +
 +//Textes en noir dans les encadrés ://
 +p. 16 :
 +**The main function instantiates the class, calls the setup function and then the game runs.**
 +La fonction principale instancie la classe, appelle la fonction setup, puis le jeu démarre.
 +
 +p 17 :
 +**The ground that the character and any props are located is also set as a sprite.**
 +Le sol, où sont placés le personnage et tous les accessoires, est aussi paramétré comme un sprite.
 +
 +**Then some crates are placed on the ground and added to the game object.**
 +Puis quelques caisses sont placées sur le sol et ajoutées à l'objet game.
 +
  
issue173/python.1632897986.txt.gz · Dernière modification : 2021/09/29 08:46 de d52fr