Python Forum
[PyGame] Waiting screen until user input - PiBooth
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[PyGame] Waiting screen until user input - PiBooth
#1
hey guys,

in advance: I'm new in PyGame.

I'm working on a photo booth / photo box with the software "PiBooth" - https://github.com/pibooth/pibooth.

It is possible to create your own plugins – hooks in different states. I created a plugin that displays a screen when the Photo Booth printer needs to be refilled:

When the print counter reaches the refill level (after 38 prints), a message should appear with a “Done” button or something similar.

My problem is: I don't know how to display the screen UNTIL user input.

Here the code:

@pibooth.hookimpl
def state_wait_do(win, app, events):
    #and app.print_ok != 0  and app.find_print_event(events).printer == 1
    if app.find_print_event(events) != None:
        LOGGER.info("sate_print_do")

        printed = app.count.printed

        if((printed % 38) == 0):
            text = "Bitte Transferrolle wechseln und Papier auffuellen, 38 gedruckte Bilder.\n\nStatus Drucker:\n"
            sendstatusmail("Transferrolle wechseln und Papier auffuellen", text)
            
            win_rect = win.get_rect()
            text = "Bitte warten..."
            font = fonts.get_pygame_font(text, fonts.CURRENT,
                                    win_rect.width//1.5, win_rect.height//1.5)
        
            text_surface = font.render(text, True, win.text_color)
        
            if isinstance(win.bg_color, (tuple, list)):
                win.surface.fill(win.bg_color)
            else:
                bg_surface = pictures.get_pygame_image(win.bg_color, win_rect.size, crop=True, color=None)
                win.surface.blit(bg_surface, (0, 0))
        
            win.surface.blit(text_surface, text_surface.get_rect(center=win_rect.center).topleft)
        
            pygame.display.update()
            pygame.event.pump()
        
            n = 0
            gef = False
            #time.sleep(5)
            while True:
                time.sleep(5)
                if gef:
                    break
                events = pygame.event.get()
                print(n)
                n = n + 1
                m = 0
                for event in events:
                    print(str(n) + str(m))
                    print(event)
                    if event.type == pygame.KEYDOWN:
                        print("Jetzat")
                        gef = True
Reply


Messages In This Thread
Waiting screen until user input - PiBooth - by world90 - Oct-19-2023, 06:29 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  [PyGame] When I hit the space bar from the home screen, it sends me to the game over screen JesusisKing 1 1,088 Apr-30-2023, 10:11 PM
Last Post: deanhystad

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020