2017-09-25 15 views
-1

Je veux dessiner un polygone sur l'écran, comme suit:polygone PyGame, en utilisant un tuple comme paramètre

screen = pygame.display.set_mode(1100, 692) 
temp = (653,333),(680,444),(680,444),(653,445) 
pygame.draw.polygon(screen,(0, 0, 255),temp,0) 

Ce que je veux faire est d'utiliser « temp » pour passer les coordonnées du polygone à la dessiner la fonction, mais quand j'essaye de le faire en utilisant 'temp' tel quel, le programme s'exécute mais aucun polygone n'apparaît. Je peux mettre le contenu de 'temp' directement dans la fonction draw.polygon et cela fonctionne bien. Comment puis-je utiliser 'temp' comme indiqué ci-dessus?

+2

Quelle est l'erreur? que voulez-vous dire par ne fonctionne pas? – kabanus

+0

Est-ce que vous dessinez peut-être en dehors de l'écran? Quelle est la taille de l'écran? Jetez un oeil à cette page: https://stackoverflow.com/help/mcve – skrx

+0

Désolé, mon format original était mal formulé, je l'ai mis à jour maintenant. –

Répondre

1

Le code que vous avez donné semble être correct. Je l'ai testé et il affiche un triangle. Comme suggéré par skrx dans le commentaire de votre taille d'écran est trop petit et vous ne pouvez pas le voir.

import pygame 

pygame.init() 
BLUE = (0, 0, 255) 
size = [1920, 1080] 
screen = pygame.display.set_mode(size) 
done = False 
clock = pygame.time.Clock() 

while not done: 
    clock.tick(10) 

    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      done = True 

    temp = (653, 333), (680, 444), (680, 444), (653, 445) 
    pygame.draw.polygon(screen, BLUE, temp, 0) 
    pygame.display.flip() 

pygame.quit() 
+0

Merci pour l'effort, je n'ai pas très bien précisé mon problème. Pourquoi est-ce quand j'utilise 'temp' dans la fonction draw.polygon, le résultat est différent de moi simplement mettre le contenu de 'temp' dans la fonction draw.polygon? –

+0

Si vous les mettez comme ça 'pygame.draw.polygon (écran, BLUE, [(653, 333), (680, 444), (680, 444), (653, 445)], 0)' il devrait y avoir aucune différence. Si vous ne les entourez pas de '[]', ils les traitent comme des arguments séparés de la fonction '.polygon' et entraînent donc un comportement différent. – DobromirM