コマの描画

盤面に配置されるコマは、目に見えないコマ(盤面の緑が透けて見える)と、目に見えるコマ(黒:先手または白:後手)とに分かれます。



# --------------------------------------------------- after -----
def paintBackground(self, g):
width = self.width(g)
height = self.height(g)
x = self.x * width
y = self.y * height
xpoints = [x+dx*2 for dx, dy in self.vertices]
ypoints = [y+dy*2 for dx, dy in self.vertices]
N = self._nPoints
g.color = Color.green
g.fillPolygon(xpoints, ypoints, N)
g.color = Color.black
g.drawPolygon(xpoints, ypoints, N)

〈改訂〉メソッド fillPolygon/drawPolygon を利用して、多角形の内部/輪郭を描きます。このとき、縦横方向に2倍の大きさで描くと、六角格子が見やすくなります。そのため、六角格子の幅/高さは、実際の画素数にすると 28/32 になっています。



# --------------------------------------------------- after -----
def paintItem(self, g):
width = self.width(g)
height = self.height(g)
x = self.x * width
y = self.y * height
color = (Color.black, Color.white)[self.state]
xpoints = [x+dx*2 for dx, dy in self.vertices]
ypoints = [y+dy*2 for dx, dy in self.vertices]
N = self._nPoints
g.color = color
g.fillPolygon(xpoints, ypoints, N)
g.color = Color.black
g.drawPolygon(xpoints, ypoints, N)

〈改訂〉メソッド fillPolygon/drawPolygon を利用して、多角形の内部/輪郭を描きます。その状態 self.state に応じて、多角形の内部を、白 Color.white/黒 Color.black で描きます。