共计 3316 个字符,预计需要花费 9 分钟才能阅读完成。
游戏名称
避敌者 (Enemy Dodger)
游戏介绍
避敌者 (Enemy Dodger) 是一个简单而有趣的Python游戏。玩家通过左右移动来躲避从屏幕上方掉落的敌人,并尽量生存更长时间以获得更高的分数。游戏具有简洁的界面和直观的操作,适合初学者和休闲玩家。
完整的游戏代码
以下是完整的游戏代码,包含详细的注释和功能说明:
import pygame
import random
import sys
# 初始化Pygame
pygame.init()
# 设置游戏窗口大小
screen = pygame.display.set_mode((800, 600))
# 设置游戏标题
pygame.display.set_caption("避敌者 (Enemy Dodger)")
# 定义颜色
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
RED = (255, 0, 0)
# 定义玩家角色尺寸和初始位置
player_size = 50
player_pos = [screen.get_width()//2, screen.get_height()-2*player_size]
# 定义敌人角色尺寸和初始位置
enemy_size = 50
enemy_pos = [random.randint(0, screen.get_width()-enemy_size), 0]
# 设置游戏速度
speed = 10
# 游戏循环标志
game_over = False
start_game = False
# 设置时钟控制游戏速度
clock = pygame.time.Clock()
# 分数
score = 0
font = pygame.font.SysFont("monospace", 35)
def draw_text(text, font, color, surface, x, y):
textobj = font.render(text, 1, color)
textrect = textobj.get_rect()
textrect.topleft = (x, y)
surface.blit(textobj, textrect)
def game_over_screen():
screen.fill(BLACK)
draw_text('游戏结束 (Game Over)', font, WHITE, screen, screen.get_width()//2 - 100, screen.get_height()//2 - 50)
draw_text('按 Enter 键重新开始 (Press Enter to Play Again)', font, WHITE, screen, screen.get_width()//2 - 200, screen.get_height()//2 + 10)
draw_text(f'得分 (Score): {score}', font, WHITE, screen, screen.get_width()//2 - 60, screen.get_height()//2 - 10)
pygame.display.update()
def start_screen():
screen.fill(BLACK)
draw_text('按 Enter 键开始 (Press Enter to Start)', font, WHITE, screen, screen.get_width()//2 - 150, screen.get_height()//2 - 50)
pygame.display.update()
# 游戏主循环
while True:
while not start_game:
start_screen()
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_RETURN:
start_game = True
game_over = False
player_pos = [screen.get_width()//2, screen.get_height()-2*player_size]
enemy_pos = [random.randint(0, screen.get_width()-enemy_size), 0]
score = 0
while not game_over:
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] and player_pos[0] - speed >= 0:
player_pos[0] -= speed
if keys[pygame.K_RIGHT] and player_pos[0] + player_size + speed <= screen.get_width():
player_pos[0] += speed
# 更新敌人位置
enemy_pos[1] += speed
# 如果敌人超出屏幕,重新生成敌人,并增加分数
if enemy_pos[1] > screen.get_height():
enemy_pos = [random.randint(0, screen.get_width()-enemy_size), 0]
score += 1
speed += 1 # 增加游戏难度
# 检测玩家和敌人是否碰撞
if (player_pos[0] < enemy_pos[0] < player_pos[0] + player_size or player_pos[0] < enemy_pos[0] + enemy_size < player_pos[0] + player_size) and (player_pos[1] < enemy_pos[1] < player_pos[1] + player_size or player_pos[1] < enemy_pos[1] + enemy_size < player_pos[1] + player_size):
game_over = True
# 绘制游戏场景
screen.fill(BLACK) # 填充背景色为黑色
pygame.draw.rect(screen, WHITE, (player_pos[0], player_pos[1], player_size, player_size)) # 绘制玩家角色
pygame.draw.rect(screen, WHITE, (enemy_pos[0], enemy_pos[1], enemy_size, enemy_size)) # 绘制敌人角色
# 显示分数
draw_text(f'得分 (Score): {score}', font, WHITE, screen, 10, 10)
pygame.display.update() # 更新屏幕显示
# 控制游戏速度
clock.tick(30)
game_over_screen()
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_RETURN:
start_game = False
break
游戏玩法介绍
- 游戏名称: 避敌者 (Enemy Dodger)
- 开始游戏: 启动游戏后,按Enter键开始游戏。
- 移动玩家: 使用键盘左右方向键(← →)移动玩家,避免与从上方掉落的敌人碰撞。
- 得分系统: 每次敌人成功躲避玩家得一分,游戏难度会随时间逐渐增加。
- 游戏结束: 当玩家与敌人碰撞时,游戏结束,显示最终得分,按Enter键重新开始游戏。
使用说明
- 确保已安装Pygame库。
- 将上述代码保存为
enemy_dodger.py
文件。 - 打开终端或命令提示符,导航到保存
enemy_dodger.py
的目录。 - 运行命令
python enemy_dodger.py
启动游戏。 - 按照屏幕提示进行操作,享受游戏。
正文完