ゲームに学ぶフレームワーク #3.5: paint を再定義する

前の記事記事一覧次の記事

ゲームに学ぶ Jython/Swing フレームワーク《Jython2.5》
paint を再定義する

《著》森こねこ+小粒ちゃん《監修》小泉ひよ子とタマゴ倶楽部
第1版♪2003/05/23 ● 第2版♪2009/04/03

■ 概要

アプリケーションを作成する過程を通して、Jython/Swing によるフレームワークを習得します。

典型的なオセロゲームから始めて、蜂の巣(6角形)状の盤面を作り、3人で対戦できるゲームへと進化させます。

《Note》JPython1.1.x/Jython2.1.x 用に作成したセミナー課題を、Jython2.5 で再構成しました。

事例:モジュールを起動する

モジュールを起動すると、次のようなウィンドウが現れます。

$ jython2.5.0 -i step04/othelloEx.py 


    
164 54 87 48
キャンバスに、8x8 の矩形を描きます。マウスでクリックした位置を出力します。 》作業中です《

事例:Java の世界を Jython から観察する

実行中の Java アプリケーションの状態は、Jython の対話モードでも確認できます。
>>> view = Xview
>>> view
java.awt.Canvas[canvas0,0,0,200x128]
大域変数 Xview を介して、Canvas を参照できます。すると、キャンバスの大きさ(幅x高さ)が 200x128 になっているのが分かります。ここで、次に示すコードの断片と比較してください。すると、幅 150 のウィンドウを指定したのに対して、実際にはキャンバスの幅が狭くなっているのが分かります。

事例:コードの解説

■ モジュール:othelloView.py
class GameBoard(Canvas):
    def _mouseClicked(self, e):
        print e.x, e.y
    def paint(self, g):
        e = Model._extent
        for y in range(8):
            for x in range(8):
                m = Model(Point(e*x, e*y))
                m.paint(g)
8x8 のマス目の中に、モデル(黒で縁取られた緑色の矩形)を描きます。メソッド paint を再定義して、キャンバス Canvas 内を再描画します。

Tips

》作業中です《
Last updated♪09/07/02