用python写一个飞机大战小游戏
时间: 2023-07-01 13:28:42 浏览: 93
python+pygame实现飞机大战小游戏
好的,我可以为你提供一个简单的飞机大战小游戏的代码示例,使用 Pygame 游戏引擎:
```python
import pygame
import random
# 初始化 Pygame
pygame.init()
# 设置游戏窗口大小
screen_width = 480
screen_height = 640
screen = pygame.display.set_mode((screen_width, screen_height))
# 加载游戏背景图片
bg_image = pygame.image.load("background.png").convert()
# 加载玩家飞机图片
player_image = pygame.image.load("player.png").convert_alpha()
player_rect = player_image.get_rect()
player_rect.centerx = screen_width // 2
player_rect.bottom = screen_height - 10
# 初始化玩家飞机速度
player_speed = 5
# 加载敌机图片
enemy_image = pygame.image.load("enemy.png").convert_alpha()
# 初始化敌机列表
enemies = []
for i in range(5):
enemy_rect = enemy_image.get_rect()
enemy_rect.x = random.randint(0, screen_width - enemy_rect.width)
enemy_rect.y = random.randint(-screen_height, 0)
enemies.append(enemy_rect)
# 初始化敌机速度
enemy_speed = 2
# 初始化得分
score = 0
# 加载字体
font = pygame.font.SysFont(None, 32)
# 游戏循环
while True:
# 处理游戏事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
# 处理玩家输入
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
player_rect.x -= player_speed
if player_rect.left < 0:
player_rect.left = 0
if keys[pygame.K_RIGHT]:
player_rect.x += player_speed
if player_rect.right > screen_width:
player_rect.right = screen_width
if keys[pygame.K_UP]:
player_rect.y -= player_speed
if player_rect.top < 0:
player_rect.top = 0
if keys[pygame.K_DOWN]:
player_rect.y += player_speed
if player_rect.bottom > screen_height:
player_rect.bottom = screen_height
# 移动敌机
for enemy_rect in enemies:
enemy_rect.y += enemy_speed
if enemy_rect.top > screen_height:
enemy_rect.x = random.randint(0, screen_width - enemy_rect.width)
enemy_rect.y = random.randint(-screen_height, 0)
# 增加得分
score += 1
# 检测玩家与敌机的碰撞
for enemy_rect in enemies:
if player_rect.colliderect(enemy_rect):
pygame.quit()
exit()
# 绘制游戏画面
screen.blit(bg_image, (0, 0))
screen.blit(player_image, player_rect)
for enemy_rect in enemies:
screen.blit(enemy_image, enemy_rect)
# 绘制得分
score_text = font.render("Score: %d" % score, True, (255, 255, 255))
screen.blit(score_text, (10, 10))
# 更新屏幕显示
pygame.display.update()
```
这个小游戏中,玩家需要使用方向键来控制自己的飞机移动,避开敌机的攻击,同时尽可能地击落更多的敌机,增加自己的得分。如果玩家的飞机与敌机碰撞,游戏会结束。
这只是一个简单的示例代码,你可以根据自己的需求来扩展和改进这个游戏。
阅读全文