帮我生成一个射击小游戏python代码
以下是一个简单的射击小游戏的Python代码:
import pygame
import random
# 初始化pygame模块
pygame.init()
# 定义游戏窗口大小
window_width = 640
window_height = 480
# 创建游戏窗口
game_window = pygame.display.set_mode((window_width, window_height))
# 设置游戏标题
pygame.display.set_caption("射击小游戏")
# 设置游戏背景颜色
background_color = (255, 255, 255)
# 加载玩家图片
player_image = pygame.image.load("player.png")
# 获取玩家图片大小
player_width = player_image.get_width()
player_height = player_image.get_height()
# 加载敌人图片
enemy_image = pygame.image.load("enemy.png")
# 获取敌人图片大小
enemy_width = enemy_image.get_width()
enemy_height = enemy_image.get_height()
# 定义玩家初始位置
player_x = window_width // 2 - player_width // 2
player_y = window_height - player_height
# 定义敌人初始位置
enemy_x = random.randint(0, window_width - enemy_width)
enemy_y = 0
# 定义玩家移动速度
player_speed = 5
# 定义敌人移动速度
enemy_speed = 3
# 定义分数
score = 0
# 定义字体
font = pygame.font.SysFont(None, 30)
# 游戏主循环
while True:
# 处理游戏事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
# 获取键盘按键状态
keys = pygame.key.get_pressed()
# 移动玩家
if keys[pygame.K_LEFT] and player_x > 0:
player_x -= player_speed
if keys[pygame.K_RIGHT] and player_x < window_width - player_width:
player_x += player_speed
# 移动敌人
enemy_y += enemy_speed
# 判断敌人是否超出屏幕
if enemy_y > window_height:
enemy_x = random.randint(0, window_width - enemy_width)
enemy_y = 0
score += 1
# 检测碰撞
if player_x < enemy_x + enemy_width and player_x + player_width > enemy_x and player_y < enemy_y + enemy_height and player_y + player_height > enemy_y:
score = 0
enemy_x = random.randint(0, window_width - enemy_width)
enemy_y = 0
# 绘制游戏界面
game_window.fill(background_color)
game_window.blit(player_image, (player_x, player_y))
game_window.blit(enemy_image, (enemy_x, enemy_y))
score_text = font.render("Score: " + str(score), True, (0, 0, 0))
game_window.blit(score_text, (10, 10))
pygame.display.update()
该游戏的玩法为:玩家控制一个图标在屏幕上移动,同时避开下落的敌人,并尽可能地得到更高的分数。玩家使用左右箭头键来控制移动。当玩家与敌人发生碰撞时,分数将被清零。游戏的分数将在屏幕上显示,并随着时间的推移而逐渐增加难度
原文地址: https://www.cveoy.top/t/topic/gt1S 著作权归作者所有。请勿转载和采集!