2009-03-12 28 views
7

Tôi đã chơi đùa với việc viết một số trò chơi bài giản dị bằng Python cho vui và tôi muốn thêm giao diện người dùng đồ họa (GUI) vào trò chơi. Bạn sẽ đề xuất thư viện nào để viết GUI cho một trò chơi bài giản dị?wxPython hoặc pygame cho một trò chơi bài giản dị?

Trả lời

6

Nếu tất cả những gì bạn muốn là GUI, wxPython sẽ thực hiện thủ thuật.

Nếu bạn muốn thêm âm thanh, đầu vào bộ điều khiển và mang nó vượt ra ngoài một trò chơi bài giản dị, thì bạn có thể muốn sử dụng pygame.

1

Tôi muốn nói trò đùa - Tôi đã nghe rất nhiều điều thú vị, dễ dàng và hạnh phúc. Ngoài ra, tất cả các kinh nghiệm của tôi với wxPython đã rất buồn.

Nhưng tôi không thiên vị hay gì cả.

4

Tôi đã không sử dụng wxPython, nhưng Pygame của chính nó là khá thấp cấp. Nó cho phép bạn nắm bắt các thao tác nhấn phím, sự kiện chuột và vẽ các nội dung trên màn hình, nhưng không cung cấp bất kỳ điều khiển GUI được tạo sẵn nào. Nếu bạn sử dụng Pygame, bạn sẽ phải viết các lớp GUI của riêng bạn hoặc sử dụng các phần mở rộng GUI hiện có cho Pygame, như Phil's Pygame Utilities.

2

Nói chung, Pygame là lựa chọn tốt hơn cho mã hóa trò chơi. Nhưng đó là loại trò chơi phổ biến hơn - nơi mọi thứ di chuyển trên màn hình và bạn phải có hiệu suất "tốc độ khung hình" tốt.

Ví dụ như trò chơi bài, tôi muốn dùng wxPython (hay đúng hơn là PyQt). Điều này là do một trò chơi bài không có nhiều về đồ họa (vẽ hình dạng thẻ 2D trên màn hình là không khó khăn hơn trong wx/PyQt hơn trong PyGame). Và mặt khác, bạn nhận được rất nhiều lợi ích từ wx - giống như một GUI sẵn sàng để tương tác.

Trong Pygame, bạn phải tự tạo GUI hoặc lướt qua một số thư viện nửa nướng để làm điều đó cho bạn. Điều này thực sự có ý nghĩa đối với Pygame bởi vì khi bạn tạo một trò chơi, bạn thường muốn có một GUI của riêng bạn, phù hợp với phong cách của trò chơi. Nhưng đối với các trò chơi bài, nhiều khả năng là các tiện ích GUI chuẩn của wx sẽ thực hiện thủ thuật này và sẽ giúp bạn tiết kiệm thời gian viết mã.

+0

Thật thú vị khi bạn đề xuất vẽ hình dạng thẻ 2D. Tôi đã nghĩ đến việc sử dụng hình ảnh của thẻ để đại diện cho các thẻ. Có lợi thế nào khi vẽ hình dạng thẻ so với sử dụng hình ảnh không? – adam

+0

@adam: hai lợi thế. (1) bạn có thể học cách vẽ các hình dạng không tầm thường. (2) bạn có thể làm cho các thẻ nhìn tuy nhiên bạn muốn, không gắn liền với bất kỳ hình ảnh cụ thể mà bạn tìm thấy. –