首页 > 其他分享 >阿里云百炼大模型生成贪吃蛇小游戏

阿里云百炼大模型生成贪吃蛇小游戏

时间:2024-12-20 12:55:37浏览次数:5  
标签:snake y1 小游戏 pygame 贪吃蛇 云百炼 event block dis

阿里云百炼大模型生成贪吃蛇小游戏

为了在贪吃蛇游戏中添加背景音乐,我们可以使用Pygame的mixer模块。以下是修改后的代码,包含了背景音乐的加载和播放功能:

  1. 安装Pygame(如果你还没有安装):

    pip install pygame
    
  2. 准备音乐文件:确保你有一个音乐文件(例如background_music.mp3),并将它放在与你的Python脚本相同的目录中。

  3. 修改代码:在代码中加入背景音乐的加载和播放功能。

import pygame
import time
import random

# 初始化pygame
pygame.init()
pygame.mixer.init()  # 初始化混音器

# 定义颜色
white = (255, 255, 255)
yellow = (255, 255, 102)
black = (0, 0, 0)
red = (213, 50, 80)
green = (0, 255, 0)
blue = (50, 153, 213)

# 设置显示窗口大小
dis_width = 800
dis_height = 600

# 创建显示窗口
dis = pygame.display.set_mode((dis_width, dis_height))
pygame.display.set_caption('贪吃蛇游戏')

# 定义时钟
clock = pygame.time.Clock()

snake_block = 10
snake_speed = 15

# 字体样式
font_style = pygame.font.SysFont(None, 50)
score_font = pygame.font.SysFont(None, 35)

def Your_score(score):
    value = score_font.render("Your Score: " + str(score), True, white)
    dis.blit(value, [0, 0])

def our_snake(snake_block, snake_list):
    for x in snake_list:
        pygame.draw.rect(dis, black, [x[0], x[1], snake_block, snake_block])

def message(msg, color):
    mesg = font_style.render(msg, True, color)
    dis.blit(mesg, [dis_width / 6, dis_height / 3])

def load_background_music():
    # 加载并播放背景音乐
    pygame.mixer.music.load("background_music.mp3")
    pygame.mixer.music.play(-1)  # -1 表示无限循环播放

def gameLoop():
    game_over = False
    game_close = False

    x1 = dis_width / 2
    y1 = dis_height / 2

    x1_change = 0
    y1_change = 0

    snake_List = []
    Length_of_snake = 1

    foodx = round(random.randrange(0, dis_width - snake_block) / 10.0) * 10.0
    foody = round(random.randrange(0, dis_height - snake_block) / 10.0) * 10.0

    load_background_music()  # 加载并播放背景音乐

    while not game_over:

        while game_close == True:
            dis.fill(blue)
            message("You Lost! Press Q-Quit or C-Play Again", red)
            Your_score(Length_of_snake - 1)
            pygame.display.update()

            for event in pygame.event.get():
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_q:
                        game_over = True
                        game_close = False
                    if event.key == pygame.K_c:
                        gameLoop()

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                game_over = True
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_LEFT:
                    x1_change = -snake_block
                    y1_change = 0
                elif event.key == pygame.K_RIGHT:
                    x1_change = snake_block
                    y1_change = 0
                elif event.key == pygame.K_UP:
                    y1_change = -snake_block
                    x1_change = 0
                elif event.key == pygame.K_DOWN:
                    y1_change = snake_block
                    x1_change = 0

        if x1 >= dis_width or x1 < 0 or y1 >= dis_height or y1 < 0:
            game_close = True
        x1 += x1_change
        y1 += y1_change
        dis.fill(blue)
        pygame.draw.rect(dis, green, [foodx, foody, snake_block, snake_block])
        snake_Head = []
        snake_Head.append(x1)
        snake_Head.append(y1)
        snake_List.append(snake_Head)
        if len(snake_List) > Length_of_snake:
            del snake_List[0]

        for x in snake_List[:-1]:
            if x == snake_Head:
                game_close = True

        our_snake(snake_block, snake_List)
        Your_score(Length_of_snake - 1)

        pygame.display.update()

        if x1 == foodx and y1 == foody:
            foodx = round(random.randrange(0, dis_width - snake_block) / 10.0) * 10.0
            foody = round(random.randrange(0, dis_height - snake_block) / 10.0) * 10.0
            Length_of_snake += 1

        clock.tick(snake_speed)

    pygame.quit()
    quit()

gameLoop()

关键点说明:

  1. 初始化混音器:在pygame.init()之后调用pygame.mixer.init()来初始化混音器。
  2. 加载和播放背景音乐:定义了一个函数load_background_music(),用于加载并播放背景音乐。该函数在游戏开始时被调用。
  3. 音乐文件路径:确保音乐文件background_music.mp3位于与Python脚本相同的目录中,或者提供正确的绝对路径。

注意事项:

  • 如果你希望在游戏结束或重新开始时停止或重置音乐,可以在相应的逻辑位置调用pygame.mixer.music.stop()pygame.mixer.music.rewind()等方法。
  • 如果你需要更多的音效(如吃到食物的声音),可以类似地使用pygame.mixer.Sound类来加载和播放短音频片段。

录屏2024-12-20 12

备注:

可以自己根据需要,修改游戏速度、背景音乐、游戏的难度。

希望这些修改能帮助你实现带有背景音乐的贪吃蛇游戏!

标签:snake,y1,小游戏,pygame,贪吃蛇,云百炼,event,block,dis
From: https://blog.csdn.net/weixin_41905135/article/details/144608513

相关文章

  • 【童年经典小游戏】使用Python实现经典贪吃蛇游戏
    文章目录使用Python实现经典贪吃蛇游戏简介实现思路与准备游戏框架与库选择游戏基本逻辑代码实现完整代码代码关键点解析初始化与游戏窗口贪吃蛇的表示与移动食物的生成碰撞检测与游戏结束运行代码中文不显示问题解决拓展与优化建议总结使用Python实现经典贪吃蛇游......
  • Python-基于Pygame的小游戏(天空之战)(一)
    前言:不久前接触了Python的游戏制作的相关第三方库,于是学习了pygame的相关内容,想制作一款基于pygame的小游戏。因为还不太熟悉游戏制作和pygame,部分内容我参考了《Python-从入门到精通》这本书。那么好,话不多说,我们直接进入今天的Python学习之旅-制作基于Pygame的小游戏(天空......
  • Java项目实战之Java小游戏-俄罗斯方块设计与实现(附项目源代码地址)
    该项目gitee地址:https://gitee.com/lsy_loren/loren-tetris.git一、游戏概述本游戏是一款经典的俄罗斯方块游戏,使用Java语言开发,具有图形用户界面(GUI)。玩家通过操作方块的移动、旋转和下落,使其填满一行或多行来消除得分,并随着得分的增加提升等级。游戏还具备暂停、阴影显示、本......
  • Java项目实战—JavaFX 贪吃蛇游戏设计与实现(附项目源代码地址)
    该项目gitee地址:https://gitee.com/jflyfox/GameSnake.git一、游戏概述贪吃蛇是一款经典的街机游戏,玩家通过控制蛇的移动方向,使其吃到食物并不断增长身体长度,同时避免撞到墙壁或自身身体。本设计文档描述了一个使用JavaFX框架开发的贪吃蛇游戏的设计思路和实现细节。二、游戏功......
  • 广告联盟小游戏养机手机认识篇
    现在是大数据时代,每个人的手机行为都记录在大数据中。例如,大家喜欢看什么短视频,根据你日常观看时长、关注点赞、某音会给你推荐什么视频。同样,你经常搜索什么行业关注什么?行业系统会自动推荐你感兴趣的广告。这样大数据有利于各行各业直接精准推荐感兴趣的潜在客户。接下来......
  • 数据结构:贪吃蛇详解
    目录一.地图的设计1.字符与坐标:2.本地化(头文件):3.类项:4.setlocale函数:(1)函数原型:(2)使用:5.宽字符的打印:(1)宽字符是什么:(2)打印:6.地图的实现和打印:(1)具体代码与预期实现效果:(2)解释:二.游戏逻辑与大体框架1.游戏逻辑与大体框架:2.游戏初步实现(GameStart函数):(1)欢迎界面......
  • 【C语言】· 第八讲 · 分支与循环三 · 实现一个猜数字小游戏
    11.goto语句回顾一下几种控制语句C语⾔提供了⼀种⾮常特别的语法,就是goto语句和跳转标号,goto语句可以实现在同⼀个函数内跳转到设置好的标号处。goto语句如果使⽤的不当,就会导致在函数内部随意乱跳转,打乱程序的执⾏流程,所以我们的建议是能不⽤尽量不去使⽤;但是g......
  • Python-基于Pygame的小游戏(坦克大战-1.0(世界))(一)
    前言:创作背景-《坦克大战》是一款经典的平面射击游戏,最初由日本游戏公司南梦宫于1985年在任天堂FC平台上推出。游戏的主题围绕坦克战斗,玩家的任务是保卫自己的基地,同时摧毁所有敌人的坦克。游戏中有多种地形和敌人类型,玩家可以通过获取道具来强化坦克和基地。此外,游戏还支持......
  • 平院贪吃蛇大师
    www是平顶山学院贪吃蛇大师。这天他发现了一个新的贪吃蛇游戏,里面的贪吃蛇居然可以斜着走! 但是这个贪吃蛇的地图居然是无限大!但他发现了一个规律:想要使自己的贪吃蛇空间利用率最高,最好的方法就是叠着走,如图所示:在这个地图里,将坐标标记为为:x/y,代表第x行第y列。www想要知道......
  • Laya 开发教程,跑酷游戏开发教程,微信小游戏开发教程
    Laya开发教程,跑酷游戏开发教程,微信小游戏开发教程https://www.bilibili.com/video/BV1xV411z7JV 1 2https://www.bilibili.com/video/BV11b4y1R7eJcocos同样会jdg游戏效果LAYA2.x实战开发教程《懒猫跑酷》01简介02调试安装helloworld03创建游戏首页04安装unity3d......