ToB企服应用市场:ToB评测及商务社交产业平台
标题:
体验用ai做了个python小游戏
[打印本页]
作者:
何小豆儿在此
时间:
2025-2-19 22:44
标题:
体验用ai做了个python小游戏
写在前面:
最近ai确实比力火。各种生成式AI,包罗笔墨、图片、视频。之前听说ai生产代码能力比力强,一直想试试。所以及就有了本问。
使用的工具
deepinseek :用来生成python代码
即梦:用来生成图片素材
Remove.bg:用来对生成的图片素材去除配景
pixabay.com:用来下载音乐素材
游戏建立步骤
1.设立游戏建立配景
我使用了深度思考
整个深度思索的过程,让我相识到deepseek为啥选择pygame库,为啥选择网络物品得分的模式。主要是我前面的提示词:小学生。我觉得符合我预期。
很快他就生成了python代码
import pygame
import random
# 初始化游戏
pygame.init()
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("哈尔滨冰雪大冒险")
clock = pygame.time.Clock()
# 加载哈尔滨元素素材
bg = pygame.image.load("snow_bg.jpg") # 冰雪大世界背景
player_img = pygame.image.load("skier.png") # 滑雪运动员
ice_img = pygame.image.load("ice_block.png") # 冰障碍物
flag_img = pygame.image.load("finish_flag.png") # 终点旗
# 颜色定义
WHITE = (255, 255, 255)
BLUE = (0, 100, 255)
# 玩家类
class Skier:
def __init__(self):
self.image = pygame.transform.scale(player_img, (60, 60))
self.rect = self.image.get_rect(center=(WIDTH//2, HEIGHT-100))
self.speed = 8
def move(self, direction):
if direction == "left" and self.rect.left > 0:
self.rect.x -= self.speed
elif direction == "right" and self.rect.right < WIDTH:
self.rect.x += self.speed
# 障碍物类
class Obstacle:
def __init__(self):
self.type = random.choice(["ice", "flag"])
self.image = ice_img if self.type == "ice" else flag_img
self.image = pygame.transform.scale(self.image, (40, 40))
self.rect = self.image.get_rect(center=(random.randint(20, WIDTH-20), -20))
self.speed = 5
def move(self):
self.rect.y += self.speed
# 游戏主循环
def main():
skier = Skier()
obstacles = []
score = 0
font = pygame.font.Font(None, 36)
game_active = True
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
return
if game_active:
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
skier.move("left")
if keys[pygame.K_RIGHT]:
skier.move("right")
# 生成障碍物
if random.random() < 0.05: # 5%概率生成
obstacles.append(Obstacle())
# 移动障碍物
for obstacle in obstacles:
obstacle.move()
if skier.rect.colliderect(obstacle.rect):
if obstacle.type == "ice":
game_active = False
else:
score += 50
obstacles.remove(obstacle)
if obstacle.rect.top > HEIGHT:
obstacles.remove(obstacle)
if obstacle.type == "ice":
score += 10
# 更新界面
screen.blit(bg, (0, 0))
screen.blit(skier.image, skier.rect)
for obstacle in obstacles:
screen.blit(obstacle.image, obstacle.rect)
# 显示得分
score_text = font.render(f"得分: {score}", True, WHITE)
screen.blit(score_text, (10, 10))
else:
# 游戏结束界面
screen.fill(BLUE)
end_text = font.render("游戏结束!最终得分: " + str(score), True, WHITE)
screen.blit(end_text, (WIDTH//2-150, HEIGHT//2))
restart_text = font.render("按R重新开始", True, WHITE)
screen.blit(restart_text, (WIDTH//2-100, HEIGHT//2+50))
keys = pygame.key.get_pressed()
if keys[pygame.K_r]:
game_active = True
score = 0
obstacles = []
skier = Skier()
pygame.display.update()
clock.tick(60)
if __name__ == "__main__":
main()
复制代码
View Code代码的完备度非常好,拷贝图片素材基本就可以运行了。代码中有注释,方便阅读代码。他还给出了后续的建议。游戏就是避障,然后接住游戏元素得分。碰到障碍物游戏结束,提示分数,提示按R键继续游戏。逻辑比力简单。
2.增加功能
在这个基础上,我对deepseek提了一些要求,大概觉得有题目的让他解决。总体上都解决了。而且结果我以为满足。
1.要求增加视频作为配景。
因为pygame是不支持视频元素的。我 看看deepseek怎么解决的哦,他比力了opencv和moviepy库,在小学生这个条件下,给出opencv更适合。这段深度思考部分,我觉得给出moviepy和opencv的比力逻辑有点欠缺。但是实际的思绪照旧比力清楚的使用第三方库从视频中取帧,然后绘制到pygame的surface上。
它还贴心的给出了如何安装opencv库,怎么引用素材
import pygame
import cv2 # 新增OpenCV库
import numpy as np
import random
# 初始化游戏
pygame.init()
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("哈尔滨冰雪大冒险")
clock = pygame.time.Clock()
# 加载视频背景(新增部分)
video = cv2.VideoCapture("harbin_winter.mp4") # 准备哈尔滨冬季主题视频
video_width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH))
video_height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))
# 加载其他素材(保持原有)
player_img = pygame.image.load("skier.png")
ice_img = pygame.image.load("ice_block.png")
flag_img = pygame.image.load("finish_flag.png")
# 视频帧转换函数(新增)
def get_video_frame():
ret, frame = video.read()
if not ret: # 如果视频播放完毕
video.set(cv2.CAP_PROP_POS_FRAMES, 0) # 重置到开头
ret, frame = video.read()
frame = cv2.resize(frame, (WIDTH, HEIGHT)) # 调整尺寸
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) # 颜色空间转换
return pygame.surfarray.make_surface(frame.swapaxes(0, 1)) # 转为Pygame Surface
# 玩家类(保持原有)
class Skier:
# ... 原有代码不变 ...
# 障碍物类(保持原有)
class Obstacle:
# ... 原有代码不变 ...
# 修改后的游戏主循环
def main():
skier = Skier()
obstacles = []
score = 0
font = pygame.font.Font(None, 36)
game_active = True
while True:
# 处理事件(保持原有)
for event in pygame.event.get():
if event.type == pygame.QUIT:
video.release() # 新增:释放视频资源
pygame.quit()
return
# 获取视频背景帧(新增部分)
bg_surface = get_video_frame()
if game_active:
# ... 原有游戏逻辑保持不变 ...
# 更新界面(修改背景部分)
screen.blit(bg_surface, (0, 0)) # 替换原来的bg
screen.blit(skier.image, skier.rect)
# ... 其余绘制逻辑保持不变 ...
else:
# 游戏结束界面(可以保持原有)
# ... 原有代码 ...
pygame.display.update()
clock.tick(60)
if __name__ == "__main__":
main()
复制代码
View Code
2.我让增加了一个接待页面。
它的思绪,通过设置变量,把游戏过程分为接待页,游戏进行中,游戏结束3个状态。逻辑没毛病。还贴心的提供修改分析和建议。
import pygame
import cv2
import numpy as np
import random
# 初始化游戏
pygame.init()
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("哈尔滨冰雪大冒险")
clock = pygame.time.Clock()
# 加载视频背景
video = cv2.VideoCapture("harbin_winter.mp4")
video_width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH))
video_height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))
# 加载游戏素材
player_img = pygame.image.load("skier.png")
ice_img = pygame.image.load("ice_block.png")
flag_img = pygame.image.load("finish_flag.png")
# 视频帧转换函数
def get_video_frame():
ret, frame = video.read()
if not ret:
video.set(cv2.CAP_PROP_POS_FRAMES, 0)
ret, frame = video.read()
frame = cv2.resize(frame, (WIDTH, HEIGHT))
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
return pygame.surfarray.make_surface(frame.swapaxes(0, 1))
# 玩家类
class Skier:
def __init__(self):
self.image = pygame.transform.scale(player_img, (60, 60))
self.rect = self.image.get_rect(center=(WIDTH//2, HEIGHT-100))
self.speed = 8
def move(self, direction):
if direction == "left" and self.rect.left > 0:
self.rect.x -= self.speed
elif direction == "right" and self.rect.right < WIDTH:
self.rect.x += self.speed
# 障碍物类
class Obstacle:
def __init__(self):
self.type = random.choice(["ice", "flag"])
self.image = ice_img if self.type == "ice" else flag_img
self.image = pygame.transform.scale(self.image, (40, 40))
self.rect = self.image.get_rect(center=(random.randint(20, WIDTH-20), -20))
self.speed = 5
def move(self):
self.rect.y += self.speed
def main():
skier = Skier()
obstacles = []
score = 0
font = pygame.font.Font(None, 36)
# 新增游戏状态变量
game_active = False
welcome_page = True # 新增欢迎页面状态
while True:
# 获取视频背景帧
bg_surface = get_video_frame()
# 事件处理
for event in pygame.event.get():
if event.type == pygame.QUIT:
video.release()
pygame.quit()
return
# 欢迎页面逻辑
if welcome_page:
screen.blit(bg_surface, (0, 0))
# 绘制标题文字
title_font = pygame.font.Font(None, 72)
title_text = title_font.render("哈尔滨冰雪大冒险", True, (255, 255, 255))
title_rect = title_text.get_rect(center=(WIDTH//2, HEIGHT//3))
screen.blit(title_text, title_rect)
# 绘制提示文字
tip_font = pygame.font.Font(None, 36)
tip_text = tip_font.render("按空格键开始游戏", True, (255, 255, 255))
tip_rect = tip_text.get_rect(center=(WIDTH//2, HEIGHT//2))
screen.blit(tip_text, tip_rect)
# 检测空格键
keys = pygame.key.get_pressed()
if keys[pygame.K_SPACE]:
welcome_page = False
game_active = True
# 游戏进行中
elif game_active:
# 玩家控制
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
skier.move("left")
if keys[pygame.K_RIGHT]:
skier.move("right")
# 生成障碍物
if random.random() < 0.05:
obstacles.append(Obstacle())
# 更新障碍物
for obstacle in obstacles[:]:
obstacle.move()
if skier.rect.colliderect(obstacle.rect):
if obstacle.type == "ice":
game_active = False
else:
score += 50
obstacles.remove(obstacle)
if obstacle.rect.top > HEIGHT:
obstacles.remove(obstacle)
if obstacle.type == "ice":
score += 10
# 绘制游戏界面
screen.blit(bg_surface, (0, 0))
screen.blit(skier.image, skier.rect)
for obstacle in obstacles:
screen.blit(obstacle.image, obstacle.rect)
# 显示得分
score_text = font.render(f"得分: {score}", True, (255, 255, 255))
screen.blit(score_text, (10, 10))
# 游戏结束界面
else:
screen.fill((0, 100, 255))
end_text = font.render(f"游戏结束!最终得分: {score}", True, (255, 255, 255))
screen.blit(end_text, (WIDTH//2-150, HEIGHT//2))
restart_text = font.render("按R重新开始", True, (255, 255, 255))
screen.blit(restart_text, (WIDTH//2-100, HEIGHT//2+50))
# 重新开始逻辑
keys = pygame.key.get_pressed()
if keys[pygame.K_r]:
game_active = True
score = 0
obstacles = []
skier = Skier()
pygame.display.update()
clock.tick(60)
if __name__ == "__main__":
main()
复制代码
View Code的
3.我发现中文显示有题目。
提出了题目,deepseek也给出可行的解决方案,我使用了他给的方案2 ,因为自定义字体可以使得游戏画面更优。还贴心的给出了注意事项。
4.我提出了配景修改意见,接待页面和结束页面配景是视频,游戏页面配景是静态图片。
deepseek也爽快完成了结果。
import pygame
import cv2
import numpy as np
import random
# 初始化游戏
pygame.init()
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("哈尔滨冰雪大冒险")
clock = pygame.time.Clock()
# 加载视频背景
video = cv2.VideoCapture("harbin_winter.mp4") # 欢迎页面和结束页面的背景视频
# 加载图片背景
game_bg = pygame.image.load("snow_bg.jpg") # 游戏界面的背景图片
game_bg = pygame.transform.scale(game_bg, (WIDTH, HEIGHT))
# 加载游戏素材
player_img = pygame.image.load("skier.png")
ice_img = pygame.image.load("ice_block.png")
flag_img = pygame.image.load("finish_flag.png")
# 加载背景音乐
pygame.mixer.init()
welcome_music = pygame.mixer.Sound("welcome_music.mp3") # 欢迎页面音乐
game_music = pygame.mixer.Sound("game_music.mp3") # 游戏界面音乐
end_music = pygame.mixer.Sound("end_music.mp3") # 结束页面音乐
# 设置音乐音量
welcome_music.set_volume(0.5)
game_music.set_volume(0.5)
end_music.set_volume(0.5)
# 视频帧转换函数
def get_video_frame():
ret, frame = video.read()
if not ret: # 如果视频播放完毕
video.set(cv2.CAP_PROP_POS_FRAMES, 0) # 重置到开头
ret, frame = video.read()
frame = cv2.resize(frame, (WIDTH, HEIGHT)) # 调整尺寸
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) # 颜色空间转换
return pygame.surfarray.make_surface(frame.swapaxes(0, 1)) # 转为Pygame Surface
# 玩家类
class Skier:
def __init__(self):
self.image = pygame.transform.scale(player_img, (60, 60))
self.rect = self.image.get_rect(center=(WIDTH//2, HEIGHT-100))
self.speed = 8
def move(self, direction):
if direction == "left" and self.rect.left > 0:
self.rect.x -= self.speed
elif direction == "right" and self.rect.right < WIDTH:
self.rect.x += self.speed
# 障碍物类
class Obstacle:
def __init__(self):
self.type = random.choice(["ice", "flag"])
self.image = ice_img if self.type == "ice" else flag_img
self.image = pygame.transform.scale(self.image, (40, 40))
self.rect = self.image.get_rect(center=(random.randint(20, WIDTH-20), -20))
self.speed = 5
def move(self):
self.rect.y += self.speed
def main():
skier = Skier()
obstacles = []
score = 0
font = pygame.font.Font(None, 36)
# 游戏状态变量
game_active = False
welcome_page = True # 初始为欢迎页面
# 当前播放的音乐
current_music = None
while True:
# 事件处理
for event in pygame.event.get():
if event.type == pygame.QUIT:
video.release()
pygame.quit()
return
# 检测空格键按下事件
if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
if welcome_page or not game_active: # 在欢迎页面或结束页面按空格键
welcome_page = False
game_active = True
score = 0
obstacles = []
skier = Skier()
print("游戏开始!")
# 欢迎页面
if welcome_page:
if current_music != welcome_music:
pygame.mixer.stop() # 停止当前音乐
welcome_music.play(-1) # 循环播放欢迎音乐
current_music = welcome_music
bg_surface = get_video_frame() # 使用视频背景
screen.blit(bg_surface, (0, 0))
# 绘制标题文字
title_font = pygame.font.Font(None, 72)
title_text = title_font.render("哈尔滨冰雪大冒险", True, (255, 255, 255))
title_rect = title_text.get_rect(center=(WIDTH//2, HEIGHT//3))
screen.blit(title_text, title_rect)
# 绘制提示文字
tip_font = pygame.font.Font(None, 36)
tip_text = tip_font.render("按空格键开始游戏", True, (255, 255, 255))
tip_rect = tip_text.get_rect(center=(WIDTH//2, HEIGHT//2))
screen.blit(tip_text, tip_rect)
# 游戏进行中
elif game_active:
if current_music != game_music:
pygame.mixer.stop() # 停止当前音乐
game_music.play(-1) # 循环播放游戏音乐
current_music = game_music
# 使用图片背景
screen.blit(game_bg, (0, 0))
# 玩家控制
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
skier.move("left")
if keys[pygame.K_RIGHT]:
skier.move("right")
# 生成障碍物
if random.random() < 0.05:
obstacles.append(Obstacle())
# 更新障碍物
for obstacle in obstacles[:]:
obstacle.move()
if skier.rect.colliderect(obstacle.rect):
if obstacle.type == "ice":
game_active = False
else:
score += 50
obstacles.remove(obstacle)
if obstacle.rect.top > HEIGHT:
obstacles.remove(obstacle)
if obstacle.type == "ice":
score += 10
# 绘制玩家和障碍物
screen.blit(skier.image, skier.rect)
for obstacle in obstacles:
screen.blit(obstacle.image, obstacle.rect)
# 显示得分
score_text = font.render(f"得分: {score}", True, (255, 255, 255))
screen.blit(score_text, (10, 10))
# 游戏结束界面
else:
if current_music != end_music:
pygame.mixer.stop() # 停止当前音乐
end_music.play(-1) # 循环播放结束音乐
current_music = end_music
bg_surface = get_video_frame() # 使用视频背景
screen.blit(bg_surface, (0, 0))
# 绘制结束文字
end_text = font.render(f"游戏结束!最终得分: {score}", True, (255, 255, 255))
screen.blit(end_text, (WIDTH//2-150, HEIGHT//2))
restart_text = font.render("按空格键重新开始", True, (255, 255, 255))
screen.blit(restart_text, (WIDTH//2-100, HEIGHT//2+50))
pygame.display.update()
clock.tick(60)
if __name__ == "__main__":
main()
复制代码
View Code
5.提出增加更多游戏元素。
deepseek增加了加速道具,护盾道具,磁铁道具,减速道具。
import pygame
import cv2
import numpy as np
import random
import math
# 初始化游戏
pygame.init()
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("哈尔滨冰雪大冒险")
clock = pygame.time.Clock()
# 加载视频背景
video = cv2.VideoCapture("harbin_winter.mp4")
# 加载图片背景
game_bg = pygame.image.load("snow_bg.jpg")
game_bg = pygame.transform.scale(game_bg, (WIDTH, HEIGHT))
# 加载游戏素材
player_img = pygame.image.load("skier.png")
ice_img = pygame.image.load("ice_block.png")
flag_img = pygame.image.load("finish_flag.png")
boost_img = pygame.image.load("boost.png") # 加速道具
shield_img = pygame.image.load("shield.png") # 护盾道具
magnet_img = pygame.image.load("magnet.png") # 磁铁道具
slow_img = pygame.image.load("slow.png") # 减速道具
# 加载背景音乐
pygame.mixer.init()
welcome_music = pygame.mixer.Sound("welcome_music.mp3")
game_music = pygame.mixer.Sound("game_music.mp3")
end_music = pygame.mixer.Sound("end_music.mp3")
# 设置音乐音量
welcome_music.set_volume(0.5)
game_music.set_volume(0.5)
end_music.set_volume(0.5)
# 视频帧转换函数
def get_video_frame():
ret, frame = video.read()
if not ret:
video.set(cv2.CAP_PROP_POS_FRAMES, 0)
ret, frame = video.read()
frame = cv2.resize(frame, (WIDTH, HEIGHT))
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
return pygame.surfarray.make_surface(frame.swapaxes(0, 1))
# 玩家类
class Skier:
def __init__(self):
self.image = pygame.transform.scale(player_img, (60, 60))
self.rect = self.image.get_rect(center=(WIDTH//2, HEIGHT-100))
self.speed = 8
self.shield = False # 护盾状态
self.magnet = False # 磁铁状态
self.boost = False # 加速状态
self.boost_timer = 0 # 加速剩余时间
def move(self, direction):
if direction == "left" and self.rect.left > 0:
self.rect.x -= self.speed
elif direction == "right" and self.rect.right < WIDTH:
self.rect.x += self.speed
def update(self):
if self.boost:
self.boost_timer -= 1
if self.boost_timer <= 0:
self.boost = False
self.speed = 8
# 障碍物类
class Obstacle:
def __init__(self):
self.type = random.choice(["ice", "flag", "boost", "shield", "magnet", "slow"])
self.image = self.get_image()
self.image = pygame.transform.scale(self.image, (40, 40))
self.rect = self.image.get_rect(center=(random.randint(20, WIDTH-20), -20))
self.speed = 5
def get_image(self):
if self.type == "ice":
return ice_img
elif self.type == "flag":
return flag_img
elif self.type == "boost":
return boost_img
elif self.type == "shield":
return shield_img
elif self.type == "magnet":
return magnet_img
elif self.type == "slow":
return slow_img
def move(self):
self.rect.y += self.speed
def main():
skier = Skier()
obstacles = []
score = 0
font = pygame.font.Font(None, 36)
game_active = False
welcome_page = True
current_music = None
slow_timer = 0 # 减速剩余时间
while True:
# 事件处理
for event in pygame.event.get():
if event.type == pygame.QUIT:
video.release()
pygame.quit()
return
if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
if welcome_page or not game_active:
welcome_page = False
game_active = True
score = 0
obstacles = []
skier = Skier()
slow_timer = 0
# 欢迎页面
if welcome_page:
if current_music != welcome_music:
pygame.mixer.stop()
welcome_music.play(-1)
current_music = welcome_music
bg_surface = get_video_frame()
screen.blit(bg_surface, (0, 0))
title_font = pygame.font.Font(None, 72)
title_text = title_font.render("哈尔滨冰雪大冒险", True, (255, 255, 255))
title_rect = title_text.get_rect(center=(WIDTH//2, HEIGHT//3))
screen.blit(title_text, title_rect)
tip_font = pygame.font.Font(None, 36)
tip_text = tip_font.render("按空格键开始游戏", True, (255, 255, 255))
tip_rect = tip_text.get_rect(center=(WIDTH//2, HEIGHT//2))
screen.blit(tip_text, tip_rect)
# 游戏进行中
elif game_active:
if current_music != game_music:
pygame.mixer.stop()
game_music.play(-1)
current_music = game_music
screen.blit(game_bg, (0, 0))
# 玩家控制
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
skier.move("left")
if keys[pygame.K_RIGHT]:
skier.move("right")
# 生成障碍物和道具
if random.random() < 0.05:
obstacles.append(Obstacle())
# 更新障碍物和道具
for obstacle in obstacles[:]:
obstacle.move()
if skier.rect.colliderect(obstacle.rect):
if obstacle.type == "ice":
if not skier.shield:
game_active = False
else:
skier.shield = False
elif obstacle.type == "flag":
score += 50
elif obstacle.type == "boost":
skier.boost = True
skier.speed = 12
skier.boost_timer = 300 # 加速持续5秒
elif obstacle.type == "shield":
skier.shield = True
elif obstacle.type == "magnet":
skier.magnet = True
elif obstacle.type == "slow":
slow_timer = 300 # 减速持续5秒
obstacles.remove(obstacle)
if obstacle.rect.top > HEIGHT:
obstacles.remove(obstacle)
if obstacle.type == "ice":
score += 10
# 磁铁效果
if skier.magnet:
for obstacle in obstacles[:]:
if obstacle.type == "flag":
dx = skier.rect.centerx - obstacle.rect.centerx
dy = skier.rect.centery - obstacle.rect.centery
distance = math.hypot(dx, dy)
if distance < 200: # 吸引范围
obstacle.rect.x += dx * 0.1
obstacle.rect.y += dy * 0.1
# 减速效果
if slow_timer > 0:
slow_timer -= 1
for obstacle in obstacles:
obstacle.speed = 2
else:
for obstacle in obstacles:
obstacle.speed = 5
# 更新玩家状态
skier.update()
# 绘制玩家和障碍物
screen.blit(skier.image, skier.rect)
for obstacle in obstacles:
screen.blit(obstacle.image, obstacle.rect)
# 显示得分和状态
score_text = font.render(f"得分: {score}", True, (255, 255, 255))
screen.blit(score_text, (10, 10))
if skier.shield:
shield_text = font.render("护盾: 激活", True, (0, 255, 0))
screen.blit(shield_text, (10, 50))
if skier.magnet:
magnet_text = font.render("磁铁: 激活", True, (0, 255, 255))
screen.blit(magnet_text, (10, 90))
if skier.boost:
boost_text = font.render("加速: 激活", True, (255, 0, 0))
screen.blit(boost_text, (10, 130))
if slow_timer > 0:
slow_text = font.render("减速: 激活", True, (255, 255, 0))
screen.blit(slow_text, (10, 170))
# 游戏结束界面
else:
if current_music != end_music:
pygame.mixer.stop()
end_music.play(-1)
current_music = end_music
bg_surface = get_video_frame()
screen.blit(bg_surface, (0, 0))
end_text = font.render(f"游戏结束!最终得分: {score}", True, (255, 255, 255))
screen.blit(end_text, (WIDTH//2-150, HEIGHT//2))
restart_text = font.render("按空格键重新开始", True, (255, 255, 255))
screen.blit(restart_text, (WIDTH//2-100, HEIGHT//2+50))
pygame.display.update()
clock.tick(60)
if __name__ == "__main__":
main()
复制代码
View Code
总结:
deepseek的代码输出能力完全没有题目,对于需求的分析也很准确。给出的修改提示和建议也非常有用。我的结论,deepseek完全可以作为生产力工具给程序员提供更快的代码输出,也可以资助程序员学习新的知识点,通过项目一点点增加功能打磨代码。
最后给出我终极的代码(我没有加上更多元素)
https://github.com/edzjx/snows-deepseek
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4