学校の課題として簡単なゲームをやっていますが、キャンバスの更新に問題があります。いくつかのループとスリープ コマンドを試しましたが、うまくいかないようです。これで、キャンバスを更新するコードができましたが、キャンバスを updateCanvas 関数に渡す方法がわかりません。
基本的に私は2つの機能を持っています:
def canvas(self):
canvas = Canvas(self)
button = Button(self, text="test", command=self.updateCanvas)
button.place(x=240, y=5)
次に、キャンバスを更新するメソッドがあります
def updateCanvas(self):
canvas.create_oval(ovalx, ovaly, ovalx2, ovaly2, fill="black")
ボタンを押すとキャンバスが更新されますが、キャンバスはグローバルではないと表示されます。それは理にかなっている。私は以前にJavaプログラミングを行ったことがあります。何らかの理由でキャンバスを次のように変更します。
def canvas(self):
global canvas = Canvas(self)
これにより、「構文エラー:無効な構文」が表示されます
私は何をすべきか?ループを使用しますか?クラス内にグローバル変数を作成できませんか? ゲームをチェッカーまたはチェスのように考えてください。チェッカーまたは駒が移動したときに画面を更新する必要があります。