python飞机游戏代码
时间: 2024-12-30 22:29:52 浏览: 14
### Python 编写飞机游戏源码示例
对于创建一个简单的基于命令行的飞机游戏,可以利用 `pygame` 库来实现图形界面的游戏开发。下面是一个简化版的飞机射击游戏代码片段。
#### 游戏初始化设置
```python
import pygame
import random
# 初始化 Pygame
pygame.init()
# 设置屏幕尺寸
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))
```
#### 定义玩家类
```python
class Player(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = pygame.Surface([50, 30])
self.image.fill((255, 0, 0)) # 玩家颜色为红色
self.rect = self.image.get_rect()
self.rect.x = screen_width / 2
self.rect.y = screen_height - 40
def update(self):
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
self.rect.x -= 5
if keys[pygame.K_RIGHT]:
self.rect.x += 5
```
#### 创建敌人对象
```python
class Enemy(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = pygame.Surface([20, 10])
self.image.fill((0, 255, 0)) # 敌人为绿色
self.rect = self.image.get_rect()
self.rect.x = random.randint(0, screen_width-self.rect.width)
self.rect.y = random.randint(-100, -40)
def update(self):
self.rect.y += 1
if self.rect.top > screen_height:
self.reset_position()
def reset_position(self):
"""重置敌人的位置"""
self.rect.y = random.randint(-100, -40)
self.rect.x = random.randint(0, screen_width-self.rect.width)
```
#### 主循环逻辑
```python
all_sprites_list = pygame.sprite.Group() # 所有精灵组
enemy_list = pygame.sprite.Group() # 敌机组
player = Player()
all_sprites_list.add(player)
for i in range(5): # 添加五个敌人到游戏中
enemy = Enemy()
all_sprites_list.add(enemy)
enemy_list.add(enemy)
done = False # 控制主循环结束条件
clock = pygame.time.Clock()
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
all_sprites_list.update()
hits = pygame.sprite.spritecollide(player, enemy_list, True) # 检测碰撞并移除被击中的敌人
for hit in hits:
new_enemy = Enemy()
all_sprites_list.add(new_enemy)
enemy_list.add(new_enemy)
screen.fill((0, 0, 0)) # 填充背景色黑色
all_sprites_list.draw(screen) # 绘制所有角色
pygame.display.flip() # 更新整个窗口的内容
clock.tick(60) # 控制帧率每秒60次
pygame.quit()
```
这个游戏实现了基本的功能,包括移动玩家、生成敌人以及检测碰撞[^1]。
阅读全文