Проблемы рисования карточной игры Pygame - PullRequest
0 голосов
/ 01 февраля 2019

Так что в основном я работаю над карточной игрой с четырьмя игроками.У каждого игрока есть 9 карт.Объекты карт хранятся в p1Images, p2Images, p3Images, p4Images.Я вижу только свои карты (player1).Поэтому, когда я нажимаю на одну из моих карт, она будет размещена в центре экрана.Моя проблема в том, что в основном цикле, когда я рисую все изображения, иногда это не работает, потому что, например, я играю p1Images[7], рисование начинается с индекса 0, поэтому индекс 7 будет нарисован позже, что приведет к тому, чтоКарты player2, 3, 4 будут находиться под картой p1Images[7].Поэтому, когда я нажимаю SPACE, кажется, ничего не происходит, потому что p1Images[7] скрывает карты под ним.Как я могу решить это?

def placeCard(player):
    card = player.hand[0]
    player.play(0)
    card.positionX = cardPlaceX+5
    card.positionY = cardPlaceY+10

while True:

...

for e in pygame.event.get():
    if e.type == QUIT:
        pygame.quit()
        sys.exit()
    if e.type == MOUSEBUTTONDOWN:
        mx,my = pygame.mouse.get_pos()
        for i in range(0,9):
            if(mx>=p1Images[i].startposX and mx<=p1Images[i].startposX+80 and my>= p1Images[i].startposY and my<=p1Images[i].startposY+200):
                p1Images[i].positionX = cardPlaceX + 5
                p1Images[i].positionY = cardPlaceY + 10
                placedCardNumber = 1

    if e.type == KEYDOWN:
        if (e.key == K_SPACE and placedCardNumber == 1):

            placeCard(player2)

        if (e.key == K_SPACE and placedCardNumber == 2):
            placeCard(player3)

        if (e.key == K_SPACE and placedCardNumber == 3):
            placeCard(player4)

        placedCardNumber += 1

        if(placedCardNumber == 4):
            placedCardNumber = 0

for i in range(0,9):
    drawingCard = pygame.image.load(p1Images[i].path)
    DISPLAYSURF.blit(drawingCard, (p2Images[i].positionX, cardImages[i].positionY))
    drawingCard2 = pygame.image.load(p2Images[i].path)
    DISPLAYSURF.blit(drawingCard2, (p2Images[i].positionX, p2Images[i].positionY))
    drawingCard3 = pygame.image.load(p3Images[i].path)
    DISPLAYSURF.blit(drawingCard3, (p3Images[i].positionX, p3Images[i].positionY))
    drawingCard4 = pygame.image.load(p4Images[i].path)
    DISPLAYSURF.blit(drawingCard4, (p4Images[i].positionX, p4Images[i].positionY))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...