2013-07-21 33 views
5

私はPythonとPygameを使用してRPGゲームを作成しています。基本的なコマンドラインのような下部を含む2つの部分からなるGUIを作成しようとしています。グラフィカルな「行動」を示す部分。Pygame GUIからのテキスト入力を受け入れる方法

私が調べる必要があるのは、pygameウィンドウと端末ウィンドウを使用する代わりに、両方をpygameウィンドウに含める方法です。同様に、この使用に適したPygameのGUIツールキットはありますか?

ありがとうございます!

+0

私がやっていること、そしてezTextのように見えますが、私はおそらくそれを使うでしょう、私はただpguに対してすべての人に助言するでしょう。それは文書化されていないし、何かを働かせることは難しい。 –

+0

まだ入力が必要な場合は、このファイルは有望なスタートアップのようです:http://www.pygame.org/pcr/inputbox/inputbox.py –

+0

実際には、これはpygameセッション全体からイベントを収集するように見えます。 –

答えて

5

代わりにezTextを使用することをおすすめしますか? pygameにテキストバーを追加するのはクールな方法です。私は自分の前で使っていました。本当に使いやすいです。多かれ少なかれ同じである

http://www.pygame.org/project-EzText-920-.html

(あなたが知る必要があるすべては、それが付属していますexample.pyであるが、あなたがそれを使用して助けたい場合は、コメントを残して自由に感じる)

+0

ありがとう、男!私はこれを使用すると思う。 – Pip

+1

テキスト入力が「フォアグラウンド」(最後にクリックされたもの)にあるかどうかを簡単に識別できますか?それが事態になった場合にのみイベントをとり、更新された方が良いでしょうし、それをするのは苦労しています。 –

2

PygameとPygletのToolkitの一覧はこちら(http://wiki.python.org/moin/PythonGameLibraries)をご覧ください。アルボー(http://www.cosc.canterbury.ac.nz/greg.ewing/python/Albow/)は過去に私のためにうまくいきました。

あなたが話していることを達成する最も簡単な方法は、インターフェイスの各部分に1つの2つのサーフェスを作成し、それらを別々のモジュールで常に更新して最終的にすべてのフレームをブリットすることです。そうすれば、メインモジュールを次のように簡単にすることができます:

import action_gui 
import cl_gui 
import pygame 

pygame.init() 
MAIN_SURF = pygame.display.set_mode((x, y)) 
pygame.display.set_caption('My Game') 

while (True): 
    action_surf = action_gui.update() 
    cl_surf = cl_gui.update() 
    MAIN_SURF.blit(action_surf, my_position_1) 
    MAIN_SURF.blit(cl_surf, my_position_2) 

最高の運があります。

+0

非常にクールです(と便利です:D)。私はこれを使用するとは思わないが、答えに感謝!私はこれを最終的に使うことができると確信しています! – Pip

関連する問題