2012-02-07 21 views
2

私は、Pythonでカードゲームを書くつもりですが、今はGUIを探しています(私はPythonが初めてです)。 私は、これまで2 GUIのを試してみました:TKは、(インター)wxPythonのカードゲーム用のPython GUI

それらのどちらもこれを行うために、、できるようにするようだと、私は間違っているなら、私を修正します。それにはカードの画像を

をパネルにドラッグ

をそしてそれはドラッグについてさえない。これは状況です

  1. 私はカードをコンテナに入れたいと思います。それはカードの前面と裏面の両方を表示することができるはずですので、各カードを裸の画像ではなくパネルにする必要があります。
  2. イメージは透明な領域を持つことができます(カードの角は丸くなります)
  3. パネル(コンテナ)はトランスパラントでなければなりません(異なる背景色、表の他のカード、 ...)

Tkinterの:私はそれを理解するよう2を行うことはできません:私はwxPythonを

それを理解するよう3を行うことはできません。

私の質問があるので、私は、一緒に行くとGUIの後にGUIを発見するが、これは時間のかかるの一種であることができます:TkinterのとwxPythonのは、これらの欠点を持っているように、

  1. はそれですか?
  2. もしそうなら、どのGUIに行くのですか?

私はパイゲームについて聞いたことがありますが、それほど私はGUIを求めていません。スイング(Java)はそれを行うことができます。それはゲームの中心でもありません。

+0

なぜPyOpenGLを使用してみませんか? –

+0

@ニクラス:私はこれまで聞いたことがないので、私は最後になるかもしれない。答えで精緻化するケア? – Peter

答えて

7

あなたがゲームを書きたいように、私ははGUIライブラリを使用しないに推薦します。代わりに、ゲームライブラリのように、PyGamePyOpenGlまたはKivy(他の人を除く)を検索する必要があります。彼らは皆あなたの必要を満たすはずです。

+0

あなたはguiライブラリに対して推薦することを正確に 'ゲーム'で何と言うことができますか? – Peter

+0

@Peterゲームエンジンであり、これに最適化されています。 (* PyGame *はSDLライブラリの上に構築されています。* OpenGLでは* PyOpenGL *)これらのパッケージを使用することにより、より多くの機能が得られます。(アンチエイリアス、組み込みの複雑なレンダリング操作[グラデーションのような]これらのプラットフォーム用の多くのオープンソース・ゲームや多くのデモ・スクリプトがあります。 –

+0

Niklas、私はあなたのリンクに感謝します(そして+1をくれました)。しかし、これはカードゲームです。カードが動く、それだけだ。このシナリオに利点はありますか? – Peter

6

wxPythonは透過を行うことができます。透明なpngを使用するだけです。

png = wx.Image(imageFile, wx.BITMAP_TYPE_ANY).ConvertToBitmap() 
wx.StaticBitmap(self, -1, png, (10, 5), (png.GetWidth(), png.GetHeight())) 

Showing a .png image in a window in wxPython

+0

何についてhttp://stackoverflow.com/questions/6738440/display-a-transparent-png-in-wxpython? – Peter

+0

wxPythonには、透明なPNGの例を含む素晴らしいデモアプリケーションがあります。あなたが指している質問は、透明なPNGをウィンドウコントロールの上に置くことです。さらに大きな透明効果が必要な場合、wxPythonは透明なPNGからウィンドウを作成することもできます。 wxPythonはどこから始めるのだろうと思います。 Pygameは素晴らしいですが、wxPythonがあなたに与えてくれるものの開発時間を大幅に増やすと思います。 – mcneo

+0

しかしこれは高価な操作ではありませんか?これは、「ちょっと」の(ビットマップマスクされた)透過性のための変換です。私は私のゲームを切り抜き始めましたが、パフォーマンスを変えなければならないことさえありました。私は52枚のカードを持った52枚のパネルを持っています。カードはドラッグ可能でなければなりません。 – Peter

1

例についてはwxPythonのデモを見て、wxPythonメーリングリストで似たようなことをした人がいるかどうかを確認してください。デモでは、あなたが探しているもののいくつかを行うDragImageデモがあります。

そうしないと、Pythonゲームライブラリの1つがニーズに合っている可能性があります。 PyGameはおそらく最もよく知られています。しばらくの間、ピグレットは勢いを増していた。関連項目wxPython or pygame for a simple card game?

+0

私はそれを試しましたが、全く同じものはありません。 – Peter

1

Tkinterは透明なgifを扱うことができます。あなたの「コンテナ」の要件は理解するのが少し難しいです。透明性と色の異なる背景にドラッグする機能とは何が関係しているのか分かりません。

もちろん、キャンバスにオブジェクト(画像、丸みを帯びた四角形、ec)をグループ化することができます。これらのオブジェクトの間に空白がある場合は、角を丸くしてオブジェクトをドラッグできます。

+0

私は間違いがないと思いますが、TKinterウィジェットが透明性を扱っていないと言っていたので、どこかで答えを読んでいますか?透明なラベルを宣言する方法の例を教えてもらえますか? – Peter

+0

@Peter:「コンテナ」の意味がわかりません。キャンバスに2つの画像を並べて配置した場合、それらの周りに丸い四角形が描かれます。これは「コンテナ」の定義に一致しますか?キャンバス上にオブジェクトを描画するのではなく、これをウィジェットの束として実装することを考えているなら、あなたは正しいと思います:tkウィジェットは透明性を扱いません。 –

+0

私はそのオブジェクトをドラッグできるように、別の「オブジェクト」にトランプカードを入れたいです。例えばラベル。そのラベルはカードであり、その上のイメージは前面またはカードまたは背面になります。そのラベルは透明である必要があります。それは私が推測する私の問題です。 – Peter