2015-05-25 15 views
5

Tạo trò chơi tic-tac-toe rất đơn giản bằng Python sử dụng kiến ​​trúc P2P có ổ cắm. Hiện tại GUI của tôi có nút có nội dung 'Tạo' sẽ mở ra và vẽ cửa sổ bảng trò chơi mới, tạo ổ cắm, liên kết, nghe và chấp nhận kết nối. Nút 'Tham gia' sẽ mở và vẽ một bảng trò chơi mới và kết nối với 'máy chủ' đó.Python: Hiển thị thông báo 'Đang chờ người chơi ...' trong khi socket lắng nghe kết nối

Tôi đang cố gắng hiển thị thông báo có nội dung 'Đang chờ người chơi ...' khi bạn tạo trò chơi, nút hủy để dừng lại và quay lại menu chính và tự biến mất nếu một kết nối đã được chấp nhận.

Tôi đã thử sử dụng tkMessageBox nhưng tập lệnh dừng cho đến khi người dùng xóa thư nên không có cách nào để tôi lắng nghe/chấp nhận cho đến khi người dùng nhấn một cái gì đó.

Còn cách nào khác để tôi thực hiện việc này?

Cảm ơn!

+0

Có thể thêm khung trong thời gian chờ đợi và hủy khung khi nó chấp nhận? – Zizouz212

+0

Quyết định chỉ mở một cửa sổ có nhãn và nút và phá hủy. Điều đó dường như làm việc ngoại trừ vấn đề bây giờ là trong khi nó lắng nghe cho các kết nối mà toàn bộ cửa sổ đóng băng và vì vậy bạn không thể nhấp vào nút hủy bỏ .... hmm. Vẫn đang làm việc trên nó. – Bapho

Trả lời

1

Âm thanh như một vấn đề về luồng.

Tôi không quen với đồ họa TK, nhưng tôi tưởng tượng những gì bạn cần làm là bắt đầu cửa sổ hiển thị thông báo "đang chờ người chơi". Cửa sổ đó sau đó vòng chờ đợi một cái gì đó xảy ra.

Khi hộp thông báo hiển thị, bạn cần phải thực hiện "nghe" trên một chuỗi khác, tín hiệu này sẽ quay trở lại hộp tin nhắn chính khi ai đó kết nối bằng một semaphore hoặc một hàng đợi.

Mở chủ đề giao diện chính của bạn, bạn cần phải thực hiện vòng lặp:

  1. kiểm tra hàng đợi hoặc semaphore cho các giá trị. Nếu có một giá trị trên đó bạn mong đợi, hãy đóng hộp. Điều này sẽ cần phải không bị chặn sao cho luồng GUI vẫn có thể kiểm tra đầu vào từ người dùng.
  2. kiểm tra đầu vào của người dùng. Đó có thể được thực hiện bằng cách sử dụng chức năng gọi lại mặc dù.
+0

Tôi sợ rằng đó sẽ là câu trả lời ... Thời gian để xem xét các chủ đề. Cảm ơn! – Bapho

+0

@ Bapho không hoảng loạn, họ không * tất cả * xấu! Bạn chỉ cần xem thời gian và tín hiệu và bạn sẽ ổn thôi. –

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