Python应用实例(一)外星人入侵(十)
发布人:shili8
发布时间:2024-12-22 15:43
阅读次数:0
**Python 应用实例(一):外星人入侵**
在这个系列中,我们将通过一个有趣的游戏来展示 Python 的应用实例。这个游戏叫做 "外星人入侵",玩家需要控制一艘飞船避开不断向下落的外星人。
**游戏规则**
* 玩家控制的飞船位于屏幕顶部。
* 外星人从上往下移动,每个外星人有一个随机的速度和方向。
* 玩家可以通过按键 "左" 和 "右" 来控制飞船的位置。
* 如果玩家撞到外星人,游戏结束。
**代码实现**
import pygameimport random# 初始化 Pygamepygame.init() # 设置屏幕大小screen_width =800screen_height =600screen = pygame.display.set_mode((screen_width, screen_height)) # 设置标题pygame.display.set_caption("外星人入侵") # 定义颜色black = (0,0,0) white = (255,255,255) # 定义飞船和外星人的类class Spaceship(pygame.Rect): def __init__(self): super().__init__(screen_width /2, screen_height -50,50,50) class Alien(pygame.Rect): def __init__(self): super().__init__(random.randint(0, screen_width), random.randint(-100,0),50,50) # 创建飞船和外星人spaceship = Spaceship() aliens = [Alien() for _ in range(10)] # 主循环while True: # 处理事件 for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() # 获取键盘输入 keys = pygame.key.get_pressed() if keys[pygame.K_LEFT]: spaceship.x -=5 if keys[pygame.K_RIGHT]: spaceship.x +=5 # 更新外星人位置 for alien in aliens: alien.y += random.randint(1,5) # 检查碰撞 for alien in aliens: if (spaceship.colliderect(alien) or spaceship.left < alien.right and spaceship.right > alien.left): print("Game Over!") pygame.quit() sys.exit() # 绘制图像 screen.fill(black) pygame.draw.rect(screen, white, spaceship) for alien in aliens: pygame.draw.rect(screen, (255,0,0), alien) # 更新屏幕 pygame.display.flip() # 设置帧率 pygame.time.Clock().tick(60)
**注释**
* `pygame.init()` 初始化 Pygame 库。
* `screen_width` 和 `screen_height` 设置屏幕大小。
* `black` 和 `white` 定义颜色常量。
* `Spaceship` 和 `Alien` 类定义飞船和外星人的属性和行为。
* 主循环中,处理事件、获取键盘输入、更新外星人位置、检查碰撞并绘制图像。
* `pygame.time.Clock().tick(60)` 设置帧率为60 FPS。
**注意**
* 这个游戏的实现是为了示例目的,不一定是最优解。
* 可以根据需要进行调整和扩展。