2017-07-17 4 views
0

Je veux exécuter le code pour ouvrir un écran Pygame qui peut être dessiné en faisant glisser la souris. Mais IDLE dit toujours:Pygame "TypeError: doit être une séquence de 2 éléments, non builtin_function_or_method"

Traceback (most recent call last): 
    File "D:/Python32/Pygame/draw", line 36, in <module> 
    pygame.draw.circle(screen,WHITE,spot,radius) 
TypeError: must be 2-item sequence, not builtin_function_or_method 

import pygame 
    pygame.init() 

    screen=pygame.display.set_mode([800,600]) 
    pygame.display.set_caption("Draw lines") 



    WHITE=(225,225,225) 
    radius=10 

    mousedown=False 



    keep_going=True 
    while keep_going: 



     for event in pygame.event.get(): 

      if event.type==pygame.QUIT: 
       keep_going=False 

      if event.type==pygame.MOUSEBUTTONDOWN: 
       mousedown=True 
      if event.type==pygame.MOUSEBUTTONUP: 
         mousedown=False 



     if mousedown: 
      spot=pygame.mouse.get_pos 

       pygame.draw.circle(screen,WHITE,spot,radius) 
      pygame.display.update() 



    pygame.quit() 
+0

Veuillez aussi essayer de formater correctement le code. Il semble que vous ayez utilisé des onglets mélangés avec des espaces. [PEP 8] (https://www.python.org/dev/peps/pep-0008/) recommande de n'utiliser que des espaces. Vous pouvez sélectionner votre code ici dans la fenêtre "edit" et appuyez simplement sur "Ctrl-K", mais il y a encore d'autres problèmes d'indentation. – skrx

Répondre

2

Il vous manque le () pour appeler la fonction get_pos(), donc Python donne la fonction comme un objet, et non le résultat de la fonction, qui est pourquoi vous obtenez cette erreur.

if mousedown: 
    spot=pygame.mouse.get_pos() 

    pygame.draw.circle(screen,WHITE,spot,radius) 
    pygame.display.update() 
+0

Merci!^_^Et pourquoi pouvons-nous utiliser "event.pos" sans()? – Inteyerry

+0

Par exemple: si event.type == pygame.MOUSEBUTTONDOWN: spot = événement.pos ...... peut s'exécuter. – Inteyerry

+0

@Inteyerry c'est la magie de Python !! Tout est un objet, des variables, des classes et des fonctions. Cela peut être utile pour stocker une fonction ailleurs, ou la renommer – PRMoureu