微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

NameError:未定义名称“事件”

如何解决NameError:未定义名称“事件”

我尝试运行我为游戏学校项目编写的这段代码,当尝试在屏幕上放置一些按钮时,使用 pygame_widgets 字典,我尝试将创建按钮的整个过程放在一个函数中,但函数需要阅读事件日志以了解按钮是被按下还是悬停......而编译器只是不断崩溃。

import pygame
import pygame_widgets

pygame.init()

WIDTH = 600
HEIGHT = 600
font_face_name = 'Merriweather-Regular.ttf'
SCREEN = pygame.display.set_mode((WIDTH,HEIGHT))
pygame.display.set_caption('SUDOKU game')
WHITE = (0,0)
BLACK = (255,255,255)
logo = pygame.transform.scale(pygame.image.load('assets/sudoku].png'),(150,150))
background_image = pygame.transform.scale(pygame.image.load('assets/2.jpg'),(600,600))


def write_on_SCREEN(surface,font_face,font_weight,text,color,x,y):
    my_font = pygame.font.SysFont(font_face,font_weight)
    logo_label = my_font.render(text,True,color)
    surface.blit(logo_label,(x,y))
    pygame.display.update()


def button_on_SCREEN(surface,position_x,position_y,button_width,button_height,button_label,label_size,button_margin,color_inactive,color_pressed,color_hover,button_radius,on_click_function):

    button = pygame_widgets.button.Button(surface,text=button_label,fontSize=label_size,margin=button_margin,inactiveColour=color_inactive,pressedColour=color_pressed,hoverColour=color_hover,radius=button_radius,onClick=on_click_function)
    button.listen(event)
    button.draw()


def draw_on_SCREEN():
    SCREEN.blit(background_image,(0,0))
    SCREEN.blit(logo,(225,80))
    write_on_SCREEN(SCREEN,font_face_name,60,'sudoku game',WHITE,170,20)


def main():
    running = True
    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False
        draw_on_SCREEN()
        button_on_SCREEN(SCREEN,250,400,200,100,'PLAY',40,30,(226,175,255),(222,(192,253,20,lambda: print('clicked'))
        pygame.display.update()
    pygame.quit()


if __name__ == '__main__':
    main()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。