Python飞机大战游戏

Python飞机大战游戏

首页枪战射击飞机怼颜色更新时间:2024-04-26

大家好!今天给你们带来了使用pygame模块开发的飞机大战游戏,可以左右移动以及点击空格发射子弹。

安装pygame:

pip install pygame

完整代码:

import pygame import random # 初始化pygame pygame.init() # 设置屏幕大小 screen_width = 480 screen_height = 640 screen = pygame.display.set_mode((screen_width, screen_height)) # 设置标题 pygame.display.set_caption("简化版飞机大战") # 定义颜色 BLACK = (0, 0, 0) RED = (255, 0, 0) BLUE = (0, 0, 255) # 飞机设置 player_width = 40 player_height = 40 player_x_pos = (screen_width / 2) - (player_width / 2) player_y_pos = screen_height - player_height - 20 player_speed = 5 # 减慢飞机移动速度 # 敌人设置 enemy_width = 20 enemy_height = 20 enemy_x_pos = random.randint(0, screen_width - enemy_width) enemy_y_pos = 0 enemy_speed = 10 # 子弹设置 bullet_radius = 5 # 子弹为小圆形 bullet_speed = 10 bullets = [] # 存储子弹的列表 # 积分 score = 0 font = pygame.font.SysFont(None, 36) # FPS clock = pygame.time.Clock() # 主循环 running = True while running: dt = clock.tick(60) # 设置游戏最大帧率为60 # 事件处理 for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # 键盘操作 keys = pygame.key.get_pressed() if keys[pygame.K_LEFT]: player_x_pos -= player_speed if player_x_pos < 0: player_x_pos = 0 if keys[pygame.K_RIGHT]: player_x_pos = player_speed if player_x_pos > screen_width - player_width: player_x_pos = screen_width - player_width if keys[pygame.K_SPACE]: # 发射子弹 bullet_x_pos = player_x_pos player_width / 2 bullet_y_pos = player_y_pos bullets.append([bullet_x_pos, bullet_y_pos]) # 更新子弹位置 for bullet in bullets[:]: bullet[1] -= bullet_speed if bullet[1] < -bullet_radius: bullets.remove(bullet) # 敌人位置更新 enemy_y_pos = enemy_speed if enemy_y_pos > screen_height: enemy_y_pos = 0 enemy_x_pos = random.randint(0, screen_width - enemy_width) # 碰撞检测(简化处理) player_rect = pygame.Rect(player_x_pos, player_y_pos, player_width, player_height) enemy_rect = pygame.Rect(enemy_x_pos, enemy_y_pos, enemy_width, enemy_height) for bullet in bullets[:]: bullet_rect = pygame.Rect(bullet[0] - bullet_radius, bullet[1] - bullet_radius, bullet_radius*2, bullet_radius*2) if bullet_rect.colliderect(enemy_rect): bullets.remove(bullet) score = 1 enemy_y_pos = 0 enemy_x_pos = random.randint(0, screen_width - enemy_width) if player_rect.colliderect(enemy_rect): print("碰撞!游戏结束") running = False # 绘制背景、飞机、敌人和子弹 screen.fill(BLACK) pygame.draw.rect(screen, BLUE, (player_x_pos, player_y_pos, player_width, player_height)) pygame.draw.rect(screen, RED, (enemy_x_pos, enemy_y_pos, enemy_width, enemy_height)) for bullet in bullets: pygame.draw.circle(screen, BLUE, (bullet[0], bullet[1]), bullet_radius) # 显示积分 score_text = font.render(f"Score: {score}", True, (255, 255, 255)) screen.blit(score_text, (10, 10)) # 更新显示 pygame.display.update() # 结束pygame pygame.quit(),

大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved