我基本上想做一个必须抓水瓶的游戏,但是我不知道在某些情况下如何添加另一个水瓶,例如,如果得分高于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()