您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在屏幕上显示和更新乐谱?

如何在屏幕上显示和更新乐谱?

这是一种显示分数的方法:它使用tk.Label,在分数增加的同时进行更新。

增加分数的触发因素目前是随机调用on_change; 如果管道的x坐标变得低于小鸟的x坐标(小鸟成功越过障碍物),则可以将其修改为测试

如果要在画布上重新放置乐谱标签,则可以。

import random
import tkinter as tk


WIDTH, HEIGHT = 500, 500


def create_pipes():
    pipes = []
    for x in range(0, WIDTH, 40):
        y1 = random.randrange(50, HEIGHT - 50)
        y0 = y1 + 50
        pipes.append(canvas.create_line(x, 0, x, y1))
        pipes.append(canvas.create_line(x, y0, x, HEIGHT))
    return pipes


def move_pipes():
    for pipe in pipes:
        canvas.move(pipe, -2, 0)
        x, y0, _, y1 = canvas.coords(pipe)
        if x < 0:
            canvas.coords(pipe, WIDTH+20, y0, WIDTH+20, y1)

    if random.randrange(0, 20) == 10:
        on_change()

    root.after(40, move_pipes)


def on_change():
    global score
    score += 1
    score_variable.set(f'score: {score}')


root = tk.Tk()
tk.Button(root, text='start', command=move_pipes).pack()
score = 0
score_variable = tk.StringVar(root, f'score: {score}')
score_lbl = tk.Label(root, textvariable=score_variable)
score_lbl.pack()

canvas = tk.Canvas(root, width=WIDTH, height=HEIGHT, bg="cyan")
canvas.pack()

pipes = create_pipes()

root.mainloop()
其他 2022/1/1 18:47:02 有544人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶