Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Une fonction introuvable dans pygame

3 réponses
Avatar
Eugène Stassen
J'utilise Pygame pour coder un petit jeu. J'aurais en fait besoin de la
fonction SDL surface.pixels() (en C) mais je ne la trouve pas dans la
documentation sur le site de pygame. Quelqu'un sait si cette fonction
existe, sinon si je peux contourner cette fonction avec une autre ?

J'ai trouvé ce tuto :
http://www.games-creators.org/wiki/OpenGL_et_SDL_:_Application_de_textures

Ils expliquent comment charger une surface avec SDL pour la transférer
dans OpenGL.

Quelqu'un peut m'aider ?

3 réponses

Avatar
Eugène Stassen
J'utilise Pygame pour coder un petit jeu. J'aurais en fait besoin de la
fonction SDL surface.pixels() (en C) mais je ne la trouve pas dans la
documentation sur le site de pygame. Quelqu'un sait si cette fonction
existe, sinon si je peux contourner cette fonction avec une autre ?

J'ai trouvé ce tuto :
http://www.games-creators.org/wiki/OpenGL_et_SDL_:_Application_de_textures

Ils expliquent comment charger une surface avec SDL pour la transférer
dans OpenGL.

Quelqu'un peut m'aider ?


peut-être que c'est pygame.image.tostring ? quelqu'un peut confirmer ?

Avatar
Christophe Cavalaria
Eugène Stassen wrote:

J'utilise Pygame pour coder un petit jeu. J'aurais en fait besoin de la
fonction SDL surface.pixels() (en C) mais je ne la trouve pas dans la
documentation sur le site de pygame. Quelqu'un sait si cette fonction
existe, sinon si je peux contourner cette fonction avec une autre ?

J'ai trouvé ce tuto :
http://www.games-creators.org/wiki/OpenGL_et_SDL_:_Application_de_textures

Ils expliquent comment charger une surface avec SDL pour la transférer
dans OpenGL.

Quelqu'un peut m'aider ?


Module pygame.surfarray :

http://pygame.org/docs/ref/pygame_surfarray.html

Avatar
Eugène Stassen
Eugène Stassen wrote:


J'utilise Pygame pour coder un petit jeu. J'aurais en fait besoin de la
fonction SDL surface.pixels() (en C) mais je ne la trouve pas dans la
documentation sur le site de pygame. Quelqu'un sait si cette fonction
existe, sinon si je peux contourner cette fonction avec une autre ?

J'ai trouvé ce tuto :
http://www.games-creators.org/wiki/OpenGL_et_SDL_:_Application_de_textures

Ils expliquent comment charger une surface avec SDL pour la transférer
dans OpenGL.

Quelqu'un peut m'aider ?



Module pygame.surfarray :

http://pygame.org/docs/ref/pygame_surfarray.html



Merci beaucoup,

mais quand j'utilise la fonction pygame.surfarray.array3d(surface), le
programme bloque et utilise le CPU à 100%, comme dans une boucle infinie

J'utilise ce code :

#On charge la texture avec pygame (et donc SDL)
surface = pygame.image.load("objets/ForetChene.jpg").convert()

#L'un ou l'autre mais les 2 déconnent
string = pygame.surfarray.pixels3d(surface)
string = pygame.image.tostring(surface, "RGBA")

#On initialise une surface texture OpenGL
self.nomtexture = glGenTextures(1)
glBindTexture(GL_TEXTURE_2D, self.nomtexture[i])

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)

#Passage de la surface SDL en texture OpenGL
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, surface.get_width(), surface.get_height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, string)


J'ai remarqué qu'avec pygame.image.tostring je peux convertir des images
PNG mais pas des JPG. Donc le programme marche à moitié. Je suppose que
c'est à cause de la différence d'encodage. Quelqu'un a déjà réussi avec
une image jpeg ?

Eugène Stassen