使一款只有不同难易程度的游戏(大鱼吃小鱼)
增加关卡,即将难易程度由选择模式改为关卡模式。
该回答引用ChatGPT4与博主@晓码自在合作编写:
使用python实现不同难易程度的大鱼吃小鱼游戏的代码:
python
# 导入需要的库
import pygame
import random
# 初始化pygame
pygame.init()
# 设置游戏窗口大小
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))
# 颜色定义
red = (255, 0, 0)
black = (0, 0, 0)
# 鱼类
class Fish:
# 初始化
def __init__(self, x, y, speed, img):
self.x = x
self.y = y
self.speed = speed
self.img = img
# move方法控制鱼的移动
def move(self):
self.x += self.speed
# 显示鱼的方法
def show(self):
screen.blit(self.img, (self.x, self.y))
# 加载图片
bg = pygame.image.load("bg.png")
fish1 = pygame.image.load("fish1.png")
fish2 = pygame.image.load("fish2.png")
fish3 = pygame.image.load("fish3.png")
# 定义鱼列表来存储大鱼和小鱼
fishes = []
# 根据不同难度定义鱼的速度
speed1 = 1
speed2 = 3
speed3 = 5
# 字符串选择难度
level = ''
# 主循环
running = True
while running:
# 填充背景
screen.fill(black)
screen.blit(bg, (0, 0))
# 显示鱼
for fish in fishes:
fish.move()
fish.show()
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 根据字符串选择难度,增加小鱼
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_1:
level = 'level1'
fishes.append(Fish(random.randint(0, screen_width), 0, speed1, fish1))
if event.key == pygame.K_2:
level = 'level2'
fishes.append(Fish(random.randint(0, screen_width), 0, speed2, fish2))
if event.key == pygame.K_3:
level = 'level3'
fishes.append(Fish(random.randint(0, screen_width), 0, speed3, fish3))
# 显示当前的难度
font = pygame.font.Font(None, 50)
text = font.render(level, True, red)
screen.blit(text, (10, 10))
# 更新屏幕
pygame.display.update()
# 退出pygame
pygame.quit()
这个程序实现了:
所以实现了一个不同难易程度的大鱼吃小鱼游戏。
python
current_level = Level(1, 10, 5, 3) # 第一关,10条小鱼,速度为5,大鱼速度3