私はflappy birdスタイルのゲームを作成しています。そして私の問題は、私は別のdefで作成されたチューブを移動できないということです。 私のコードはPythonのtkinterは、別のdefで作成されたdefの移動オブジェクトです
from tkinter import *
from random import randint
window = Tk()
c = Canvas(window, width=800, height=800, bg='steelblue')
tube11 = randint(600, 650)
tube12 = randint(400, 700)
def createtubes():
tube1 = c.create_rectangle(800, 800, tube11, tube12, fill='green')
tube2 = c.create_rectangle(800, 0, tube11, 200, fill='green')
def automovement():
if True:
c.move(tube1, -3.5, 0)
c.move(tube2, -3.5, 0)
window.update_idletasks()
window.after(10, automovement)
window.after(60, createtubes)
window.after(10, automovement)
c.pack()
window.mainloop()
はちょうどあなたのcreatetubes機能は、それが作成したオブジェクトを返しています。それらを移動する必要のある関数に渡します。あなたの関数が主に入力に作用して出力を返すならば、一般的にプログラミングが楽になります。 – pvg
また、クラスを作成して、クラス関数が動作するメンバーとして重要な変数を格納することもできます。 – UnholySheep