2011-07-30 51 views
13

Tôi đã sử dụng Pygame với python 2.7 trước đây nhưng gần đây tôi đã nâng cấp lên python 3.2. Tôi đã tải xuống và cài đặt phiên bản mới nhất của Pygame được cho là hoạt động với phiên bản python này. Tôi có, tuy nhiên, đã có lỗi này khá bực bội về những gì nên là một khối đơn giản của mã. Mã này là:Lỗi Pygame: Hệ thống video không được khởi tạo

import pygame, random 

title = "Hello!" 
width = 640 
height = 400 
pygame.init() 
screen = pygame.display.set_mode((width, height)) 
running = True 
clock = pygame.time.Clock() 
pygame.display.set_caption(title) 

running = True 

while running: 
    for event in pygame.event.get(): 
     if event.type == pygame.quit(): 
      running = False 
     else: 
      print(event.type) 
    clock.tick(240) 
pygame.quit() 

Và mỗi lần duy nhất tôi chạy nó tôi nhận được:

17 
1 
4 
Traceback (most recent call last): 
    File "C:/Users/David/Desktop/hjdfhksdf.py", line 15, in <module> 
    for event in pygame.event.get(): 
pygame.error: video system not initialized 

Tại sao tôi nhận được lỗi này?

Trả lời

15
if event.type == pygame.quit(): 

Trong dòng trên, bạn đang gọi điện thoại pygame.quit() mà là một chức năng, trong khi những gì bạn thực sự muốn là hằng số pygame.QUIT. Bằng cách gọi pygame.quit(), pygame không còn được khởi tạo nữa, đó là lý do bạn nhận được lỗi đó.

Do đó, thay đổi dòng để:

if event.type == pygame.QUIT: # Note the capitalization 

sẽ giải quyết vấn đề của bạn.

Điều quan trọng cần lưu ý là pygame.quit() sẽ không thoát khỏi chương trình.

Các vấn đề liên quan