柚子快報激活碼778899分享:pygame 切水果游戲開發(fā)1
柚子快報激活碼778899分享:pygame 切水果游戲開發(fā)1
多數(shù)無益,上代碼:
import pygame
import random
# 初始化pygame
pygame.init()
# 設(shè)置窗口尺寸
window_width = 800
window_height = 600
window_size = (window_width, window_height)
window = pygame.display.set_mode(window_size)
# 設(shè)置窗口標(biāo)題
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
# 定義粒子系統(tǒng)
particles = []
class Particle:
def __init__(self, x, y, color):
self.x = x
self.y = y
self.color = color
self.radius = 5
self.speed_x = random.randint(-5, 5)
self.speed_y = random.randint(-15, -5)
self.alpha = 255
def update(self):
self.x += self.speed_x
self.y += self.speed_y
self.alpha -= 10
def 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)
# 游戲主循環(huán)
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 = False
elif event.type == pygame.MOUSEBUTTONDOWN:
# 獲取鼠標(biāo)位置
mouse_x, mouse_y = pygame.mouse.get_pos()
# 判斷鼠標(biāo)是否劃過水果
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] = -100
fruit_speed[i] = random.randint(1, 5)
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.MOUSEBUTTONDOWN:
# 獲取鼠標(biāo)位置
mouse_x, mouse_y = pygame.mouse.get_pos()
# 判斷鼠標(biāo)是否在窗口范圍內(nèi)
if 0 <= mouse_x <= window_width and 0 <= mouse_y <= window_height:
# 判斷鼠標(biāo)是否劃過水果
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] = -100
fruit_speed[i] = random.randint(1, 5)
# 獲取鼠標(biāo)位置
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]))
# 判斷鼠標(biāo)是否劃過水果
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] = -100
fruit_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,沒搞個地雷出來,切中就減分或結(jié)束的那種
4,沒排名,應(yīng)該搞個排名出來
5,速度應(yīng)該要遞增,錯過要減分的那種
工程地址:game: 游戲倉庫 - Gitee.com
柚子快報激活碼778899分享:pygame 切水果游戲開發(fā)1
參考閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。