Как использовать цикл для перетаскивания списка изображений на экран в Pygame? - PullRequest
0 голосов
/ 02 июля 2019

https://imgur.com/a/HwKheQT Я пытаюсь использовать цикл для перетаскивания списка карт на экран в Pygame.Я не уверен, правильно ли я это делаю, но я не могу придумать какой-либо другой способ сделать это.Изображение показывает проблему, повторяя вторую карту в списке, и я не знаю почему.только для некоторого контекста для кода ниже.Players - это список объектов Player ().Одним из атрибутов объекта игрока является Рука, Рука - это список объектов Card (), которые имеют атрибут изображения.Я могу перетаскивать их на экран по отдельности, но когда я пытаюсь использовать цикл for, он копирует вторую карту.Я понятия не имею, почему.

Я могу по отдельности перетаскивать изображения, но проблема возникает, когда я пытаюсь использовать цикл for.

def game():


    global start
    deck = Deck()
    deck.create_deck()
    deck.shuffle()
    deck.deal()


    seats = [

     (50,250),(60,265),    #seat 1
     (175,380),(185,395),  #seat 2 
     (300,450),(310,465),  #seat 3
     (400,450),(410,465),  #seat 4 
     (600,465),(610,480),  #seat 5
     (730,375),(740,390)   #seat 6

     ]


    win.blit(table,(0,0))
    index = 0
    while game_on:

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                quit()
        if start:

            for player in players:
                win.blit(pygame.transform.scale(player.hand[0].img,(card_size)),(seats[index]))

                if index == 0:
                    index = 1


                win.blit(pygame.transform.scale(player.hand[0].img,(card_size)),(seats[index]))


        index+=1

        if index >= 2*len(players):
            start = False

1 Ответ

0 голосов
/ 02 июля 2019
seats = [

 ((50,250),(60,265)),    #seat 1
 ((175,380),(185,395)),  #seat 2 
 ((300,450),(310,465)),  #seat 3
 ((400,450),(410,465)),  #seat 4 
 ((600,465),(610,480)),  #seat 5
 ((730,375),(740,390))   #seat 6

 ]

# ...

            win.blit(pygame.transform.scale(player.hand[0].img,(card_size)),(seats[index][0]))
            win.blit(pygame.transform.scale(player.hand[0].img,(card_size)),(seats[index][1]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...