Pieceクラス - magu1436/TkinterBoardGame GitHub Wiki
Piece
クラスとは?
ボードゲームにおける駒の役割を果たすクラス。
オセロなら白黒の石、すごろくの駒、マインスイーパーの旗などは、このクラスまたはこのクラスのサブクラスのオブジェクトとして実装する。
デフォルト設定では、ボードに設置したときに自動的に画像がリサイズされるため、プログラマは Piece
オブジェクトを作成して Board
に設置するという作業だけでグラフィック処理が終了する。
インスタンス属性
Piece
オブジェクトは以下の属性を持つ
属性名 | 型 | 説明 | 備考 |
---|---|---|---|
image | BoardGamePhotoImage | 自身の画像オブジェクト | |
image_display_size | [Coordinate](/magu1436/TkinterBoardGame/wiki/Coordinateクラス) | 画像のサイズ | 変更不可 |
coordinate | Coordinate | None | ボード上の自身の座標 | ボード上にないとき、Noneを持つ。 変更不可 |
x | int | ボード上の自身のx座標 | ボード上にないとき、エラーを返す。変更不可 |
y | int | ボード上の自信のy座標 | ボード上にないとき、エラーを返す。変更不可 |
ボード上におけるこのオブジェクトの座標は、自身から直接変更することはできない。座標を変更したい(移動したい)場合は、必ず Boardクラスオブジェクトから移動させる必要がある。
コンストラクタ
Piece
クラスのコンストラクタには以下の引数を与える。
引数名 | 型 | 説明 | 備考 |
---|---|---|---|
image | PathOrImage | None | オブジェクトの画像のパスまたは画像オブジェクト | Noneのとき、透明な画像を持つ。デフォルトでNone |
image_display_size | Coordinatelike | None | 画像の表示サイズ。Tkinter基準の大きさ | Noneのとき、画像の大きさをそのまま自身の大きさとする |
auto_resize | bool | 自身がボード上に配置されたとき、マスの大きさに合わせて自動的にリサイズするかどうか | デフォルトでTrue |
owner | Player | None | 自身を所持するプレイヤー | |
***_clicked_func | Callable | マウスクリック時に呼び出す関数 | 詳細は後述 |
***_release_func | Callable | マウスクリックが離されたときに呼び出す関数 | 詳細は後述 |
click_func
release_func
について
***_clicked_func
***_release_func
には、マウスクリック時に呼び出す関数を指定できる。
***
には right
center
left
を指定し、クリック時に押されたボタンに対応した関数が呼び出される。
イベント関数として指定する関数は、必ず BGEventオブジェクト のみを受け取る関数である必要がある。