2017-12-20 156 views
5

Python và Pygame có thể phát hiện chế độ video/độ phân giải màn hình của tôi làPygame có thể phát hiện chế độ video của màn hình không?

Tôi đang chạy chương trình của mình ở chế độ toàn màn hình ở 1920x1080 và điều này sẽ hoạt động tốt như tôi có màn hình 16: 9 @ 1920x1080 tuy nhiên nếu tôi chạy mã trên màn hình 4: 3 @ 1024x768 sau đó nó cho tôi lỗi này messgae

pygame.error: No video mode large enough for 1920x1080

Pygame có thể phát hiện chế độ/độ phân giải của màn hình không?

+0

Hy vọng một (hoặc tất cả) của ba câu trả lời được cung cấp đã giúp bạn giải quyết vấn đề này. Đừng quên để đánh dấu một là câu trả lời và bỏ phiếu tất cả những gì đã giúp! – SubjectiveKirby

Trả lời

2

Nếu bạn cần kích thước thực tế của màn hình, không phải là độ phân giải tốt nhất để sử dụng, bạn cần làm:

import pygame 
pygame.display.init() 
# Before calling *.set_mode() 
i = pygame.display.Info() 
width = i.current_w 
height = i.current_h 
print("The screen size is: (%ix%i)" %width, height)) 

Sau đó, bạn có thể sử dụng chiều rộng và chiều cao để pygame.display.set_mode()

2

Có, có vẻ như pygame có thể phát hiện các cài đặt khác nhau trong màn hình của bạn.

Nơi đầu tiên để xem là this link here, việc đọc sách sẽ cung cấp cho bạn rất nhiều thông tin về cách pygame có thể giúp bạn với chế độ hiển thị. Các Làm thế nào để quyết định phần có lẽ sẽ hữu ích nhất cho bạn.

Sau khi đọc, bạn sẽ thấy mình di chuyển lên this link here. Bạn sẽ thấy trong đoạn thứ tư sau các liên kết:

If precise control is needed over the pixel format or display resolutions, use the functions pygame.display.mode_ok(), pygame.display.list_modes(), and pygame.display.Info() to query information about the display.

Vì vậy, tốt nhất nên đọc về cách sử dụng và chơi xung quanh để xem cách thông tin được trả về và sử dụng.

2

Nếu bạn vượt qua (0, 0) hoặc không có gì ở độ phân giải pygame.display.set_mode, pygame sẽ sử dụng độ phân giải màn hình của bạn (nếu display.set_mode được gọi trước đó, nó sẽ sử dụng độ phân giải của màn hình hiện tại của bạn). Bạn cũng có thể gọi số pygame.display.list_modes() và chọn một trong các độ phân giải được trả về.

BTW, trong Windows bạn cần phải cẩn thận, vì cửa sổ pygame có thể được kéo dài. This answer sẽ giúp ích.

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