2017-04-11 6 views
0

私はチェス盤に32個の可動オブジェクトを持っています。それらの移動可能なオブジェクトは、それに文字が付いた円です。チェス盤で楕円を動かす

boardGUI.create_oval(x0 + tileSize * j + ((1/5)*tileSize), y0 + tileSize * i + ((1/5)*tileSize), x0 + tileSize * (j + 1) - ((1/5)*tileSize),y0 + tileSize * (i + 1) - ((1/5)*tileSize), fill = "#000") boardGUI.create_text(x0 + tileSize * j + (tileSize/2), y0 + tileSize * i +(tileSize/2),text = matrix[i][j][0].upper(),font = ("Helvetica", 12, "bold") , fill = "#FFF")

したがって、私の質問は:私は同時に円と手紙を動かすにはどうすればよいですか? (最初のクリックはピースの座標を取得し、2番目のクリックはピースを新しい座標に移動するはずです)

find_overlappingとfind_closestのtkinterメソッドを使用しようとしましたが、find_overlappingは3要素のタプルを返します。 1つの要素ので、私は何をすべきかわかりません。あなたの助けを事前に

感謝:)

+0

コードをフォーマットしてください。 – kennytm

+0

このコードは、キャンバスに円と、作品を表現するために描かれた文字があることを示すためのものです。 – titi157

+0

あなたのコードは[最小、完全、および検証可能な例]を提供する必要があります(http://stackoverflow.com/help/mcve) –

答えて

2

あなたは、タグのシステムを介して一度にタイルと文字の両方を移動することができます。これは、タイルと文字オブジェクトを作成するときに、オブジェクトパラメータ内に, tag = "tile{}-{}".format(i, j)などのスタイルを追加することによって機能します。既存のコードが楕円で同じである

boardGUI.create_oval(... , tag = "tile{}-{}".format(i, j)) 

boardGUI.create_text(... , tag = "tile{}-{}".format(i, j)) 

あなたのコードを使用して、これはようになります。

これは(あなたのiとjの増分が正しいと仮定して)タイル上のタイルと文字を同時に、おそらくboardGUI.move("tile{}-{}".format(i, j), x, y)経由で移動する方法を提供します。ここでiとjの値を位置あなたが移動したいタイルのボード上に、もちろんx/yの値はあなたがタイル/文字を動かす量です。

希望すると便利です。

関連する問題