Pygame mouse

di il
1 risposte

Pygame mouse

Ciao a tutti!!!
Mi sono avvicinato da poco a Python e sto provando un po' di cosette con pygame...
Oggi stavo provando a scrivere un programmino ma non capisco perché non funzioni, il codice è questo:
import pygame
import time
import sys

def cursore(surface):
    for event in pygame.event.get():
        if event.type == pygame.MOUSEBUTTONDOWN:
            print(pygame.mouse.get_pos())

def main():
    
    dim = 700
    
    pygame.display.init()
    pygame.display.set_caption('Testing')
    schermo = pygame.display.set_mode((dim, dim))
    schermo.fill((255, 255, 255))

    flag = True
    while flag:
        for event  in pygame.event.get():
            if event.type == pygame.QUIT:
                flag = False

        cursore(schermo)
        pygame.display.update()
        time.sleep(0.03)

    pygame.display.quit()
    sys.exit()

main()
Quello che vorrei che facesse è che stampasse sull'IDLE le coordinate in cui viene cliccato un tasto del mouse in tempo reale... ma quando clicco non viene sempre aggiornata la pagina, ogni tanto funziona e ogni tanto no tanto da farmi pensare che debba "incrociare" una finestra temporale molto piccola per fargli capire che ho premuto il tasto e che al di fuori di questa non salvi le coordinate... motivo per cui ho aggiunto lo sleep facendo un po' di prove sul tempo
Non so se mi sono spiegato bene, resto in attesa di vostri suggerimenti
Grazie in anticipo

PS accetto anche critiche costruttive sulla formalità del programma, come detto non sono ancora molto pratico da accorgermi delle finezze estetiche

1 Risposte

  • Re: Pygame mouse

    Aggiornamento...
    Sono riuscito a risolvere il problema in questo modo:
    import pygame
    import time
    import sys
    
    def cursore():
        for event in pygame.event.get():
            if event.type == pygame.MOUSEBUTTONDOWN:
                print(pygame.mouse.get_pos())
    
    def main():
        
        dim = 700
        
        pygame.display.init()
        pygame.display.set_caption('Testing')
        schermo = pygame.display.set_mode((dim, dim))
        schermo.fill((255, 255, 255))
    
        flag = True
        while flag:
            for event  in pygame.event.get():
                if event.type == pygame.QUIT:
                    flag = False
    
            #cursore()
            if event.type == pygame.MOUSEBUTTONDOWN:
                print(pygame.mouse.get_pos())
            pygame.display.update()
            time.sleep(0.03)
    
        pygame.display.quit()
        sys.exit()
    
    main()
    Resta il fatto che non capisco perché l'altro non funzioni in maniera continuativa ma solo quando ne ha voglia
Devi accedere o registrarti per scrivere nel forum
1 risposte