游戏循环
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
bullets.append([player_pos[0], player_pos[1]])
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and player_pos[0] 0:
player_pos[0] = 5
if keys[pygame.K_RIGHT] and player_pos[0] < WIDTH PLAYER_SIZE:
player_pos[0] += 5
移动子弹
for i, bullet in enumerate(bullets):
bullets[i][1] = 5
if bullet[1] < 0:
bullets.pop(i)
绘制一切
screen.fill((0, 0, 0))
pygame.draw.rect(screen, WHITE, (player_pos[0], player_pos[1], PLAYER_SIZE, PLAYER_SIZE))
for bullet in bullets:
pygame.draw.rect(screen, RED, (bullet[0], bullet[1], BULLET_SIZE, BULLET_SIZE))
游戏循环
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
bullets.append([player_pos[0], player_pos[1]])
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and player_pos[0] 0:
player_pos[0] = 5
if keys[pygame.K_RIGHT] and player_pos[0] < WIDTH PLAYER_SIZE:
player_pos[0] += 5
随机生成敌人
if random.randint(1, 100) < 5:
enemies.append([random.randint(0, WIDTH ENEMY_SIZE), 0])
移动子弹和敌人
for i, bullet in enumerate(bullets):
bullets[i][1] = 5
if bullet[1] < 0:
bullets.pop(i)
for i, enemy in enumerate(enemies):
enemies[i][1] += 2
if enemy[1] HEIGHT:
enemies.pop(i)
检查碰撞
for i, enemy in enumerate(enemies):
for j, bullet in enumerate(bullets):
if (enemy[0] < bullet[0] + BULLET_SIZE and
enemy[0] + ENEMY_SIZE bullet[0] and
enemy[1] < bullet[1] + BULLET_SIZE and
enemy[1] + ENEMY_SIZE bullet[1]):
enemies.pop(i)
bullets.pop(j)
绘制一切
screen.fill((0, 0, 0))
pygame.draw.rect(screen, WHITE, (player_pos[0], player_pos[1], PLAYER_SIZE, PLAYER_SIZE))
for bullet in bullets:
pygame.draw.rect(screen, RED, (bullet[0], bullet[1], BULLET_SIZE, BULLET_SIZE))
for enemy in enemies:
pygame.draw.rect(screen, GREEN, (enemy[0], enemy[1], ENEMY_SIZE, ENEMY_SIZE))