所以我正在编写这款名为simon的游戏,这就是这款经典的彩色记忆游戏。该算法显然还没有完成,但我只是不知道如何让广场闪现。我只是用蓝色方块测试它。
from tkinter import *
import random
import time
def click():
lightblue_rectangle = w.create_rectangle(483, 480, 683, 680, fill="blue")
window.after(500, click)
blue_rectangle = w.create_rectangle(483, 480, 683, 680, fill="darkblue")
window = Tk()
w = Canvas(window, width=1366, height=766)
w.configure(background = "black")
w.pack()
blue_rectangle = w.create_rectangle(483, 480, 683, 680, fill="darkblue")
red_rectangle = w.create_rectangle(683, 480, 883, 680, fill="red")
yellow_rectangle = w.create_rectangle(483, 280, 683, 480, fill="yellow")
green_rectangle = w.create_rectangle(683, 280, 883, 480, fill="green")
w.tag_bind(blue_rectangle, "<ButtonPress-1>", click)
我得到的错误是:click()接受0个位置参数,但是给出了1。我想做的是让方形闪光。我可以稍后处理随机模式。我只需要帮助制作方形闪光灯。
答案 0 :(得分:2)
点击后,以下内容会闪烁右下角:
只闪一次。
使用lightblue
i / o黄色
w.find_withtag(tag)
返回画布项目引用索引,该索引使画布能够识别要对其执行的项目
dummy
是占位符dummy_variable,可填写event
- 它不会执行任何操作。
import tkinter as tk
def flash(event, idx=0):
print(idx)
flashing_colors = ['lightblue', 'darkblue']
try:
w.itemconfigure(w.find_withtag('blue_rectangle'), fill=flashing_colors[idx])
window.after(100, flash, 'dummy', idx + 1)
except IndexError:
pass
if __name__ == '__main__':
window = tk.Tk()
w = tk.Canvas(window, width=1366, height=766)
w.configure(background="black")
w.pack()
blue_rectangle = w.create_rectangle(483, 480, 683, 680, fill="darkblue", tags=('blue_rectangle',))
red_rectangle = w.create_rectangle(683, 480, 883, 680, fill="red")
yellow_rectangle = w.create_rectangle(483, 280, 683, 480, fill="yellow")
green_rectangle = w.create_rectangle(683, 280, 883, 480, fill="green")
w.bind("<ButtonPress-1>", flash)
window.mainloop()