pygame(无实际错误)png图像停止加载

时间:2018-06-25 14:30:06

标签: python pygame

我正在使用pygame加载图像(Count.png,只是一个灰色背景png文件)作为当前在屏幕上显示的任何内容的叠加计数器。在此过程中,如果我让图像突然停止加载5分钟(在坐标300x300处未显示),程序就会继续运行,这意味着与计数器相关的动作仍在继续。在这种情况下,只需按一下e即可。如何正确“关闭”图像以便重新打开图像或防止图像消失(不确定图像发生了什么,它显示在任务栏上,并且动作仍每隔x秒运行一次)?

您将看到的是计数器仅在保存为Count.png的任何图像上递减计数。这从一个简单的tkinter按钮开始。该按钮将启动自动化过程并启动该计数器。当计数器达到0时,该过程将重新开始,其中应包括计数器。我用按钮写出了除tkinter窗口以外的所有部分。 icon.ico文件正是它所声明的内容,所以我没有在任务栏上看到漂亮的羽毛,而是将实际的图标绑定到了应用程序。


import os
from ctypes import windll
import pygame
import time
import pyautogui


def countingRoutine():

    locx = 300
    locy = 300

    os.environ['SDL_VIDEO_WINDOW_POS'] = "%d,%d" % (locx, locy)
    pygame.init()
    set_window_pos = windll.user32.SetWindowPos
    screen = pygame.display.set_mode((50, 30), pygame.NOFRAME)
    set_window_pos(pygame.display.get_wm_info()['window'], -1, locx, locy, 0, 0, 
    0x0001)

    clock = pygame.time.Clock()
    counter, text = 13, '00'.ljust(4)
    pygame.time.set_timer(pygame.USEREVENT, 1000)
    font = pygame.font.SysFont('Avatar', 23)

    while True:

        for e in pygame.event.get():
            if e.type == pygame.USEREVENT:
                if counter > 0:
                    counter -= 1
                    text = str(counter).center(0).rjust(4)

                else:
                    main()

        screen.fill((255, 191, 0))
        for_trans = pygame.image.load_extended('Count.png')
        loadImg = pygame.image.load_basic('icon.ico')
        pygame.display.set_icon(loadImg)
        screen.blit(for_trans, (0, -15))
        screen.blit(font.render(text, True, (200, 0, 200)), (0, 0))
        pygame.display.flip()
        clock.tick(counter)
        continue


def msgBox():
    pyautogui.confirm("Enabling Automated process\n ", "Activating", buttons= 
    ['Affirmative'])


def main():

    while True:

        pyautogui.hotkey('e')
        countingRoutine()
        time.sleep(13)

if __name__ == "__main__":
    msgBox()
    main()

0 个答案:

没有答案