2011-02-01 2 views
21

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 choses OpenGL, mais je me demandais s'il était possible de faire des graphismes 3d très basiques sans autres dépendances.Est-ce que pyGame fait 3d?

Répondre

15

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 comprennentet DirectPython, bien qu'elles soient probablement assez complexes à utiliser, en particulier ces dernières.

+3

Qu'est-ce qui ne va pas? Pygame ne fait pas 3d. PyOpenGL fait 3d. Relis sa question. – Kylotan

+2

Oui, je suis en train d'écrire un jeu en 3D. Et je n'utilise même pas OpenGL. J'utilise une méthode comme celle publiée par Horst JENS. – Cnorwood7641

11

Eh bien, si vous pouvez faire 2d, vous pouvez toujours faire 3d. Tout ce que le 3D est vraiment est une surface bidimensionnelle faussée donnant l'impression que vous regardez quelque chose avec la profondeur. La vraie question est peut-il le faire bien, et voudriez-vous même le faire. Après avoir parcouru la documentation pyGame pendant un moment, il semble que ce soit juste un wrapper SDL. SDL n'est pas prévu pour la programmation 3D, donc la réponse à la vraie question est, non, et je n'essaierais même pas.

+3

J'ai essayé. En fait, j'ai déjà écrit toute une émulation d'OpenGL en C++. C'est méchant, et apprendre une vraie API 3D est BEAUCOUP mieux avant de savoir ce que vous faites avec la technologie 3D. – imallett

2

Python Soya peut restituer des graphiques 3D sur des surfaces de pygame.

6

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

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

et si vous naviguez sur le site pygame.org vous trouverez peut-être plus "3d" jeux fait avec python et pygame. Cependant, si vous voulez vraiment entrer dans la programmation 3D, vous devriez regarder dans OpenGl, Blender ou toute autre librairie 3d réelle.

0

Pygame n'a jamais été à l'origine signifiait pour faire 3d, mais il y a un moyen que vous pouvez faire en 3D avec n'importe quelle bibliothèque graphique 2d. Tout ce dont vous avez besoin est la fonction suivante, qui convertit les points 3d en points 2D, ce qui vous permet de créer 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)] 

Ceci est appelé pseudo 3d, ou 2.5d. Cela peut être fait, mais peut être lent, et est extrêmement difficile à faire, il est donc conseillé d'utiliser une bibliothèque destinée à la 3D.