Bonjour, j'ai commencé à feuilleter un livre sur pygame et la programmation de jeu en général et je souhaiterais savoir comment fermer 'proprement une fenêtre' .
Bien qu'ayant cherché sur internet je n'ai pas réussi à trouver.
J'ai essayé ceci:
import pygame
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((800, 600), 0, 32)
pygame.display.set_caption("Hello, World!")
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
Traceback (most recent call last):
File "/Users/Asimov/Desktop/ntest.py", line 9, in <module>
for event in pygame.event.get():
error: video system not initialized
J'ai aussi essayé avec sys.exit() mais j'ai toujours un message d'erreur:
import pygame
from pygame.locals import *
import sys
pygame.init()
screen = pygame.display.set_mode((800, 600), 0, 32)
pygame.display.set_caption("Hello, World!")
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
Traceback (most recent call last):
File "/Users/Asimov/Desktop/ntest.py", line 13, in <module>
sys.exit()
SystemExit
Je vous remercie par avance si jamais vous aviez une solution ou alors si ceci est normal.
et la boucle while tu la break quand ? (dans le 1er code)
sais-tu que exit() est une fonction built-in , nul besoin donc d'importer sys
import pygame
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((800, 600), 0, 32)
pygame.display.set_caption("Hello, World!")
run = True
while run:
for event in pygame.event.get():
if event.type == QUIT:
run = False
pygame.quit()
ou si la boucle sert juste à marquer une pause ...
from pygame import *
scr = display.set_mode((800,600))
display.set_caption("Hello, World!")
while event.wait().type != QUIT: pass
#!/usr/bin/env python
background_image_filename = 'mario.jpg'
mouse_image_filename = 'sonic.png'
import pygame
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((800, 600), 0, 32)
pygame.display.set_caption("Hello, World!")
background = pygame.image.load(background_image_filename).convert()
mouse_cursor = pygame.image.load(mouse_image_filename).convert_alpha()
run = True
while run:
for event in pygame.event.get():
if event.type == QUIT:
run = False
screen.blit(background, (0,0))
x, y = pygame.mouse.get_pos()
x-= mouse_cursor.get_width() / 2
y-= mouse_cursor.get_height() / 2
screen.blit(mouse_cursor, (x, y))
pygame.display.update()
pygame.quit()
Ca fonctionne correctement, en fait dans l'exemple du livre (Beginning game development with python) il importe le module sys et place le exit() juste après la condition if event.type == QUIT: c'est pour cela que je m'entêtais à placer pygame.quit à cet endroit.
Et sinon avez vous lu ce livre ? Si oui, qu'en pensez vous ?
Avez vous un autre livre sur pygame à me suggérer parce que celui là pour le peu d'exemple que j'ai testé il y a toujours une erreur.
J'ai pu voir que ces livres:
Game Programming - The L Line, the Express Line to Learning (Andy Harris)
Game Programming With Python (Charles River Media Game Development)
semblaient être appréciés.
Si vous connaissez je serais ravi d'avoir votre avis.
Et sinon avez vous lu ce livre ? Si oui, qu'en pensez vous ?
Avez vous un autre livre sur pygame à me suggérer parce que celui là pour le peu d'exemple que j'ai testé il y a toujours une erreur.
J'ai pu voir que ces livres:
Game Programming - The L Line, the Express Line to Learning (Andy Harris)
Game Programming With Python (Charles River Media Game Development)
semblaient être appréciés.
Si vous connaissez je serais ravi d'avoir votre avis.
je n'ai lu que la doc du site pygame.org
elle est assez facile à comprendre je trouve.
r1 = screen.blit(background,cursor_rect,cursor_rect)
# blit une zone rectangulaire de background sur screen à la position cursor_rect.pos,
# cette zone est définie par cursor_rect.
# en clair; je blit sur screen à la position du pseudo-curseur que la partie
# de background qui se trouve sous le pseudo-curseur, ce qui à pour effet de
# l'effacer. on mémorise dans r1 la zone rectangulaire retournée.
cursor_rect.center = event.pos
# place le centre du pseudo-curseur à la position du pointeur de la souris.
# pygame.display.update((screen.blit(mouse_cursor,cursor_rect),r1))
# j'aurai pû détailler ainsi mais j'aime bien les onelines:
screen.blit(mouse_cursor,cursor_rect)
# blit l'image du pseudo-curseur sur screen à sa nouvelle position.
pygame.display.update((cursor_rect,r1))
#actualise le display seulement là où il y à eu du changemenr,
# çàd r1 (là où on a effacé) et cursor_rect (là où on a blit)
Merci pour les explications, je pense avoir compris le principe cela évite de 'bliter' le background entièrement à chaque fois que la souris bouge ?
voilà ...
Python c'est bon, mangez-en.
Fermeture d'une fenêtre pygame avec mac os
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Python c'est bon, mangez-en.
Python c'est bon, mangez-en.
Python c'est bon, mangez-en.
Python c'est bon, mangez-en.