在某些情况下如何复制

时间:2020-03-05 02:52:24

标签: python-3.x multiple-conditions

我基本上想做一个必须抓水瓶的游戏,但是我不知道在某些情况下如何添加另一个水瓶,例如,如果得分高于10,则添加另一个水瓶,如果得分高于20再加上一个,依此类推,等等。我还希望它们有一点延迟,以便它们不会在同一时间全部产卵。谢谢您的帮助。

这是我的代码:

# Player

playerImg = pygame.image.load('player.png')
playerX = 676
playerY = 531
playerX_change = 0

# water_bottles

water_bottleImg = (pygame.image.load('Water Bottle.png'))
water_bottleX = (random.randint(15, 875))
water_bottleY = (-100)
water_bottleY_change = (1.5)

# Score
score_value = 0
font = pygame.font.SysFont('Arial', 40, True)
textX = 10
textY = 10

# Definitions
def show_score(x, y):
    score = font.render("Score :" + str(score_value), True, (0, 0, 0))
    screen.blit(score, (x, y))

def player(x, y):
    screen.blit(playerImg, (x, y))

def water_bottle(x, y, ):
    screen.blit(water_bottleImg, (x, y))

def iscollision(playerX, playerY, water_bottleX, water_bottleY):
    iscollision = -30 <= (playerX + 22 - water_bottleX + 30) <= 57 and -10 <= (playerY - 15 - water_bottleY) <= 10

    if iscollision:
        return True
    else:
        return False

# Game Loop
running = True

while running:

    # RGB = Red, Green, Blue
    screen.fill((0, 0, 0))

    # Background Image
    screen.blit(background, (0, 0))

    for event in pygame.event.get():

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

        # Keys
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                playerX_change = -3
            if event.key == pygame.K_RIGHT:
                playerX_change = 3

        if event.type == pygame.KEYUP:
            if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
                playerX_change = 0

    # Player Boundaries
    playerX += playerX_change

    if playerX <= 0:
        playerX = 0

    if playerX >= 1200:
        playerX = 1200

    # water_bottle Movement
    water_bottleY += water_bottleY_change

    # Collision
    collision = iscollision(playerX, playerY, water_bottleX, water_bottleY)

    if collision:
        water_bottleX = random.randint(15, 875)
        friendly_objectY = -100
        score_value += 1

    # Missed water_bottle
    if water_bottleY >= 681:
        water_bottleY = -100
        water_bottleX = random.randint(15, 875)

    player(playerX, playerY)
    water_bottle(water_bottleX, water_bottleY)
    show_score(textX, textY)
    pygame.display.update()

0 个答案:

没有答案