PyGame fait-il de la 3d?

je n'arrive pas à trouver la réponse à cette question n'importe où. Je me rends compte que vous devez utiliser pyOpenGL ou quelque chose de similaire pour faire des trucs openGL, mais je me demandais si c'était possible de faire des graphismes 3d très basiques sans autres dépendances.

22
demandé sur eggbert 2011-02-01 20:08:43

9 réponses

Non, Pygame est un wrapper pour SDL, qui est une api 2D. Pygame ne fournit aucune capacité 3D et ne le fera probablement jamais.

les bibliothèques 3D pour Python incluent Panda3D et DirectPython, bien qu'ils soient probablement assez complexe à utiliser, surtout le dernier.

16
répondu Kylotan 2011-02-01 17:19:18

Eh bien, si vous pouvez faire 2d, vous pouvez toujours faire 3d. Tout ce que la 3d est vraiment est des surfaces bidimensionnelles asymétriques donnant l'impression que vous regardez quelque chose avec profondeur. La vraie question est peut on faire le bien, et ce que tu veux. Après avoir parcouru la documentation pyGame pendant un moment, il semble que ce soit juste un emballage SDL. SDL n'est pas prévu pour la programmation 3d, donc la réponse à la vraie question est Non, et je n'essayez même pas.

12
répondu Wes P 2011-02-01 17:20:25

Vous pouvez faire de la pseudo-3d jeux ( comme "Doom" ) avec pygame seulement:

http://code.google.com/p/gh0stenstein/

et si vous pygame.org site vous pouvez trouver plus de jeux" 3d " fait avec python et pygame.

cependant, si vous voulez vraiment aller dans la programmation 3d, vous devriez regarder dans OpenGl, Blender ou tout autre vrai lib 3d.

7
répondu Horst JENS 2012-05-25 06:45:19

Python soja peut rendre des graphiques 3d sur les surfaces pygame.

3
répondu Samuel Breese 2012-01-02 15:48:38

si vous voulez des fonctions de projection 3D et tous ces trucs, vous devrez utiliser une API 3D mais si vous voulez faire un look 3D de base, je recommande le tutoriel du site Web de Peter: http://www.petercollingridge.co.uk/pygame-3d-graphics-tutorial

1
répondu alexpinho98 2014-01-05 16:06:34

ce que vous voyez comme un 3D est en fait un jeu 2D. Après tout, vous regardez votre écran, qui (normalement ;) ) est en 2D. Le monde virtuel (qui est en 3D) est projetée sur un plan, qui est ensuite affichée sur votre écran. Nos cerveaux convertissent ensuite cette image 2D en une image 3D (comme ils le font avec l'image de nos yeux), la faisant ressembler à de la 3D.

il est donc relativement facile de faire un jeu en 3D: il suffit de créer un monde virtuel à l'aide d'une matrice multidimensionnelle, puis de le projeter à chaque boucle sur un plan 2D, que vous affichez sur votre écran.

un tutoriel que vous pouvez mettre sur votre chemin vers les programmes 3D (en utilisant pygame) est celui-ci .

1
répondu Jonas De Schouwer 2018-06-22 17:08:09

Pygame n'a jamais été conçu à l'origine pour faire de la 3d, mais il existe un moyen de faire de la 3d avec n'importe quelle bibliothèque graphique 2d. Tout ce que vous avez besoin est la fonction suivante, qui convertit les points 3d en points 2d, ce qui vous permet de faire n'importe quelle forme 3d en dessinant simplement des lignes sur un écran.

def convert_to_2d(point=[0,0,0]):
    return [point[0]*(point[2]*.3),point[1]*(point[2]*.3)]

cela s'appelle pseudo 3d, ou 2.5 D. Cela peut être fait, mais peut être lent, et est extrêmement difficile à faire, il est donc suggéré que vous utilisez une bibliothèque destinée à la 3d.

0
répondu Douglas - 15 year old Pythoner 2015-12-15 16:17:28

il est facile de faire le pilote 3D pour PyGame. PyGame possède quelques atouts pour le développement de jeux 3D. Maintenant je développe le pilote Py3D avec L'utilisation de PyGame. Quand j'aurai fini, je vous montrerai le lien pour télécharger Py3D. J'ai essayé de faire un jeu en 3D avec PyGame et j'ai besoin d'un petit addon pour PyGame. Vous pensez que vous devez utiliser SDL, PyOpenGL, OpenGL, PyQt5, Tkinter. Tous sont faux pour faire des jeux 3D. OpenGL et PyOpenGL ou Panda3D sont très difficiles à apprendre. Tous mes jeux sur ces pilotes étaient terrible. PyQt5 et Tkinter ne sont pas des pilotes pour faire des jeux, mais ils ont des addons pour cela. N'essayez pas de faire n'importe quel jeu sur les pilotes. Tous les pilotes où nous devons utiliser le module math.py sont durs. Vous pouvez facilement faire petit addon pour eux, je pense que tout le monde peut faire pilote pour PyGame de 1-2 semaines.

0
répondu Anton 2018-06-15 10:09:27

Pygame est juste une bibliothèque pour changer la couleur des pixels (et d'autres trucs utiles pour les jeux de programmation). Vous pouvez le faire en jetant des images à l'écran ou en réglant directement les couleurs des pixels.

à cause de cela, il est facile d'écrire des jeux 2D avec pygame, car ce qui précède est tout ce dont vous avez vraiment besoin. Mais un jeu 3D est juste quelques objets 3D "écrasés" (rendus) en 2D de sorte qu'il peut être affiché sur l'écran. Donc, pour faire un jeu en 3D en utilisant seulement pygame, vous auriez ce rendu par vous-même, y compris toutes les mathématiques matricielles complexes nécessaires.

non seulement cela fonctionnerait lentement en raison de l'énorme puissance de traitement impliquée, mais cela vous exigerait d'écrire un énorme moteur de rendu 3D/rasterisation. Et à cause de python interprété, il serait encore plus lent. La bonne approche serait de faire exécuter ce processus sur le GPU en utilisant (Py)opengl.

donc, oui il est techniquement possible de faire 3D en utilisant seulement pygame, mais certainement pas recommandé. Je suggère que vous appreniez Panda3D ou un moteur 3D similaire.

0
répondu qwerty12345 2018-07-01 14:14:51