游戏开发1"/>
切水果游戏开发1
多数无益,上代码:
import pygame
import random# 初始化pygame
pygame.init()# 设置窗口尺寸
window_width = 800
window_height = 600
window_size = (window_width, window_height)
window = pygame.display.set_mode(window_size)# 设置窗口标题
pygame.display.set_caption("切水果游戏")# 加载背景音乐和切水果音效
# pygame.mixer.music.load("background_music.mp3")
slice_sound = pygame.mixer.Sound("music.mp3")fruit_images = {"apple": pygame.transform.scale(pygame.image.load("apple.png"), (100, 100)),"banana": pygame.transform.scale(pygame.image.load("banana.png"), (100, 100)),"orange": pygame.transform.scale(pygame.image.load("orange.png"), (100, 100)),"watermelon": pygame.transform.scale(pygame.image.load("watermelon.png"), (100, 100)),"strawberry": pygame.transform.scale(pygame.image.load("strawberry.png"), (100, 100))
}# 定义水果颜色
fruit_colors = {"apple": (255, 0, 0), # 红色"banana": (255, 255, 0), # 黄色"orange": (255, 165, 0), # 橙色"watermelon": (0, 255, 0), # 绿色"strawberry": (255, 0, 255) # 紫色
}# 定义粒子颜色
particle_colors = {"apple": (255, 0, 0), # 红色"banana": (255, 255, 0), # 黄色"orange": (255, 165, 0), # 橙色"watermelon": (0, 255, 0), # 绿色"strawberry": (255, 0, 255) # 紫色
}# 定义水果初始位置和速度
fruit_initial_x = []
fruit_initial_y = []
fruit_speed = []
for i in range(5):fruit_initial_x.append(random.randint(50, window_width - 50))fruit_initial_y.append(-100)fruit_speed.append(random.randint(1, 5))# 定义切水果得分
score = 0# 定义粒子系统
particles = []class Particle:def __init__(self, x, y, color):self.x = xself.y = yself.color = colorself.radius = 5self.speed_x = random.randint(-5, 5)self.speed_y = random.randint(-15, -5)self.alpha = 255def update(self):self.x += self.speed_xself.y += self.speed_yself.alpha -= 10def draw(self):color = tuple(max(0, min(c, 255)) for c in self.color)alpha = max(0, min(self.alpha, 255))pygame.draw.circle(window, color + (alpha,), (int(self.x), int(self.y)), self.radius)# 游戏主循环
running = True
clock = pygame.time.Clock()
# pygame.mixer.music.play(-1)while running:# 填充窗口背景色window.fill((0, 0, 0))# 处理事件for event in pygame.event.get():if event.type == pygame.QUIT:running = Falseelif event.type == pygame.MOUSEBUTTONDOWN:# 获取鼠标位置mouse_x, mouse_y = pygame.mouse.get_pos()# 判断鼠标是否划过水果for i in range(5):if fruit_initial_x[i] <= mouse_x <= fruit_initial_x[i] + 100 and fruit_initial_y[i] <= mouse_y <= fruit_initial_y[i] + 100:# 播放切水果音效slice_sound.play()# 增加得分score += 1# 生成粒子效果for _ in range(20):particles.append(Particle(fruit_initial_x[i] + 50, fruit_initial_y[i] + 50, particle_colors[list(fruit_images.keys())[i]]))# 重新生成水果位置和速度fruit_initial_x[i] = random.randint(50, window_width - 50)fruit_initial_y[i] = -100fruit_speed[i] = random.randint(1, 5)for event in pygame.event.get():if event.type == pygame.QUIT:running = Falseelif event.type == pygame.MOUSEBUTTONDOWN:# 获取鼠标位置mouse_x, mouse_y = pygame.mouse.get_pos()# 判断鼠标是否在窗口范围内if 0 <= mouse_x <= window_width and 0 <= mouse_y <= window_height:# 判断鼠标是否划过水果for i in range(5):if fruit_initial_x[i] <= mouse_x <= fruit_initial_x[i] + 100 and fruit_initial_y[i] <= mouse_y <= fruit_initial_y[i] + 100:# 播放切水果音效slice_sound.play()# 增加得分score += 1# 生成粒子效果for _ in range(20):particles.append(Particle(fruit_initial_x[i] + 50, fruit_initial_y[i] + 50, particle_colors[list(fruit_images.keys())[i]]))# 重新生成水果位置和速度fruit_initial_x[i] = random.randint(50, window_width - 50)fruit_initial_y[i] = -100fruit_speed[i] = random.randint(1, 5)# 获取鼠标位置mouse_x, mouse_y = pygame.mouse.get_pos()# 绘制水果for i in range(5):fruit_initial_y[i] += fruit_speed[i]window.blit(fruit_images[list(fruit_images.keys())[i]], (fruit_initial_x[i], fruit_initial_y[i]))# 判断鼠标是否划过水果if fruit_initial_x[i] <= mouse_x <= fruit_initial_x[i] + 100 and fruit_initial_y[i] <= mouse_y <= fruit_initial_y[i] + 100:# 播放切水果音效slice_sound.play()# 增加得分score += 1# 生成粒子效果for _ in range(20):particles.append(Particle(fruit_initial_x[i] + 50, fruit_initial_y[i] + 50, particle_colors[list(fruit_images.keys())[i]]))# 重新生成水果位置和速度fruit_initial_x[i] = random.randint(50, window_width - 50)fruit_initial_y[i] = -100fruit_speed[i] = random.randint(1, 5)# 更新和绘制粒子效果for particle in particles:particle.update()particle.draw()if particle.alpha <= 0:particles.remove(particle)# pass# 绘制得分font = pygame.font.Font(None, 36)text = font.render("Score: " + str(score), True, (255, 255, 255))window.blit(text, (10, 10))# 更新窗口pygame.display.flip()# 控制帧率clock.tick(60)# 退出游戏
pygame.quit()
工程目录:
效果:
遗留问题:
1,碰到就切碎了,不少,要点击+碰到好些
2,没背景音乐
3,没搞个地雷出来,切中就减分或结束的那种
4,没排名,应该搞个排名出来
5,速度应该要递增,错过要减分的那种
工程地址:game: 游戏仓库 - Gitee
更多推荐
切水果游戏开发1
发布评论