分享好友 编程语言首页 频道列表

Python+Pygame实战之炫舞小游戏的实现

Python  2023-02-09 03:550

导语

昨天去老姐家里蹭饭,进门的时候就看到佳佳妹(我姐的女儿)低头霹雳吧啦一顿操作猛如虎,饭好了都还在玩儿,什么东西这么好玩?一走进就看到这是一款酷似炫舞的小游戏。(死去的回忆突然在攻击我~没想到现在还有这款游戏就是不知道升级了多少次啦)

不知道你们还记不记得曾经有个风靡一时的舞蹈游戏炫舞。

我读小学的时候,大概是09年吧,这个游戏非常火爆,如果你去网吧,十个女生里,有十一个都是在玩炫舞,像我就是其中的一员。那个时候还没有英雄联盟王者荣耀,女生玩炫舞,男生玩地下城穿越火线!

提到QQ炫舞,可能很多人想到的第一个词是“青春”。恍然间,这个承载了无数人回忆与时光的游戏品牌,已经走到了第十几个年头。今天小编就来给大家尝试做一款简单的简陋版的小游戏——《舞动青春*炫舞》。(其实是简单的五分之一的成品,感觉今天洗头发又要掉一堆了)

一、环境安装

小编使用的环境:Python3、Pycharm社区版、pygame模块,部分自带的就不一一 展示啦。

模块安装:pip install -i https://pypi.douban.com/simple/+模块名 

Python+Pygame实战之炫舞小游戏的实现

背景图片大家可以自己修改的啦~嘿嘿怎么好看怎么来撒!

二、代码展示

主程序:

import pygame
import sys
import random
 
import time
import threading
 
random.random()
flag=1
 
# 创建线程对象
 
 
# 初始化pygame
pygame.init()
# 定义变量
size = width, height = 1024,768
bg = (0, 0, 0)
# 加载logo图
 
img = pygame.image.load("shang_hong.png")
# 获取图像的位置
 
# 创建一个主窗口
screen = pygame.display.set_mode(size)
 
# 标题
pygame.display.set_caption("炫舞——简洁版")
    # 创建游戏主循环
clock = pygame.time.Clock()  
sudu=0.5
list=[]
list1=[]
 
def fuyuan():
    x=50
    global list1,list
    list.clear()
    for i in range(1,10):
        
        list.append(list1[i-1])
        
    for i in list1:
        
        if i==1:
            img = pygame.image.load("zuo_hong.png")
            screen.blit(img, [x,500])
            pygame.display.flip()
        if i==2:
            img = pygame.image.load("shang_hong.png")
            screen.blit(img, [x,500])
            pygame.display.flip()
        if i==3:
            img = pygame.image.load("you_hong.png")
            screen.blit(img, [x,500])
            pygame.display.flip()
        if i==4:
            img = pygame.image.load("xia_hong.png")
            screen.blit(img, [x,500])
            pygame.display.flip()
        x=x+113
    x=50                    
def chushi():
    global x
    x=50
 
    screen.fill(bg)
    global list
    global list1
    list.clear()
    list1.clear()
    for i in range(1,9):
        i=random.randint(1,4)
        list.append(i)
    list.append(5)
    #print(list)
  
    
    for i in range(1,10):   
        list1.append(list[i-1])
    #print(list1)
    
    img = pygame.image.load("jindu.jpg")
    screen.blit(img, [100,400])
    pygame.display.flip()
    x=50
    for i in list:
        
        if i==1:
            img = pygame.image.load("zuo_hong.png")
            screen.blit(img, [x,500])
            pygame.display.flip()
        if i==2:
            img = pygame.image.load("shang_hong.png")
            screen.blit(img, [x,500])
            pygame.display.flip()
        if i==3:
            img = pygame.image.load("you_hong.png")
            screen.blit(img, [x,500])
            pygame.display.flip()
        if i==4:
            img = pygame.image.load("xia_hong.png")
            screen.blit(img, [x,500])
            pygame.display.flip()
        x=x+113
    x=50
        
x1=150
flag=1
def yidong():
    #print("sss")
    global flag
    global list
    global x1
    global clock
    clock.tick(800)
    #print(x1)
    img = pygame.image.load("jindu.jpg")
    screen.blit(img, [100,400])   
    pygame.draw.circle(screen,(232,0,176),(x1,431),20,1000)
    #print(x1)
    pygame.display.flip()
    x1=x1+sudu
    if x1>780:
        #print(len(list))
        if len(list)==0:
            while x1<780:
                flag=0
                #print(x1)
                clock.tick(800)
                #print(x1)
                img = pygame.image.load("jindu.jpg")
                screen.blit(img, [100,400])   
                pygame.draw.circle(screen,(232,0,176),(x1,431),20,1000)
                pygame.display.flip()
                x1=x1+sudu 
            flag=1    
            #chushi()
            #list.clear()
            
            
        x1=150 
        if len(list)>0:
             
            screen.fill((0,0,0))
            miss()
            while x1<780:
                flag=0
                #print(x1)
                clock.tick(800)
                #print(x1)
                img = pygame.image.load("jindu.jpg")
                screen.blit(img, [100,400])   
                pygame.draw.circle(screen,(232,0,176),(x1,431),20,1000)
                pygame.display.flip()
                x1=x1+sudu
            x1=150    
            flag=1
        chushi()
   
 
class task(threading.Thread):
     def __init__(self):
         threading.Thread.__init__(self)
         self.thread_stop = False
     def run(self):
        while not self.thread_stop:
            yidong()
        
        
           
     def stop(self):
        self.thread_stop = True 
        
t1 = task()
t1.start()
 
#yidong()
 
 
 
 
chushi()
x=50
def miss():
    font = pygame.font.Font(None, 150)
    text = font.render('Miss!', True, (232,0,176), (0, 0, 0))
    screen.blit(text, (200, 150))
    
def chenggong():
    global x1
    
    screen.fill((0,0,0))
    global x
    global flag
    x=50
    flag=0
    if x1<600:
        font = pygame.font.Font(None, 150)
        text = font.render('Good!', True, (232,0,176), (0, 0, 0))
        screen.blit(text, (200, 150))
    if x1>625:
        font = pygame.font.Font(None, 150)
        text = font.render('Good!', True, (232,0,176), (0, 0, 0))
        screen.blit(text, (200, 150))
    if x1>=600 and x1<=625:
        font = pygame.font.Font(None, 150)
        text = font.render('Perfict!', True, (232,0,176), (0, 0, 0))
        screen.blit(text, (200, 150))
    x1=150    
        
while True:
    clock.tick(100)
    
    # 设置初始值
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
        # 图像移动 KEYDOWN 键盘按下事件
        # 通过 key 属性对应按键
        cmd=1
        if event.type == pygame.KEYDOWN and flag==1:
            #print("sssss")
            #if event.key == 27:
            #   cmd=2
            if event.key == pygame.K_ESCAPE:
                t1.stop()
                sys.exit()
            if event.key == pygame.K_UP:
                cmd=2
            if event.key == pygame.K_DOWN:
                cmd=4
            if event.key == pygame.K_RIGHT:
                cmd=3
            if event.key == pygame.K_LEFT:
                cmd=1
            if event.key == pygame.K_SPACE:
                cmd=5
                if len(list)==1:
                    del list[0]
                    chenggong() 
                     
                    
                    continue
                
            
            if cmd==list[0]:
                
                if cmd==1:
                    #print(x)
                    img = pygame.image.load("zuo_lv.png")
                    screen.blit(img, [x,500])
                    pygame.display.flip()
                    
                if cmd==2:
                    #print(x)
                    img = pygame.image.load("shang_lv.png")
                    screen.blit(img, [x,500])
                    pygame.display.flip()
                   
                if cmd==3:
                    #print(x)
                    img = pygame.image.load("you_lv.png")
                    screen.blit(img, [x,500])
                    pygame.display.flip()   
                    
                    
                if cmd==4:
                    #print(x)
                    img = pygame.image.load("xia_lv.png")
                    screen.blit(img, [x,500])
                    pygame.display.flip()
 
                x=x+113
                del list[0]
            else:
                print(list1)
                #print("Aaaa")
                fuyuan()
                x=50
                
                
                
                   
           
            #print("sss")
            #screen.fill((0,0,0))
            
           
            
            
    '''
    # 移动图像
    position = position.move(site)
    # 填充背景
    screen.fill(bg)
    # 放置图片
    screen.blit(img, position)
    # 更新显示界面
    pygame.display.flip()
    '''

三、效果展示

1)简洁版炫舞

Python+Pygame实战之炫舞小游戏的实现

​2)随机截图

Python+Pygame实战之炫舞小游戏的实现

3)MISS节拍

Python+Pygame实战之炫舞小游戏的实现

以上就是Python+Pygame实战之炫舞小游戏的实现的详细内容,更多关于Python Pygame炫舞游戏的资料请关注其它相关文章!

原文地址:https://blog.csdn.net/weixin_55822277/article/details/128144571

查看更多关于【Python】的文章

展开全文
相关推荐
反对 0
举报 0
评论 0
图文资讯
热门推荐
优选好物
更多热点专题
更多推荐文章
如何在Abaqus的python中调用Matlab程序
目录1. 确定版本信息2. 备份python3. 设置环境变量4. 安装程序5. 调试运行参考资料Abaqus2018操作系统Win10 64位Python版本2.7(路径C:\SIMULIA\CAE\2018\win_b64\tools\SMApy\python2.7)2. 备份python将上述的“python2.7”文件夹复制出来,避免因操作错误

0评论2023-03-16608

sf02_选择排序算法Java Python rust 实现
Java 实现package common;public class SimpleArithmetic {/** * 选择排序 * 输入整形数组:a[n] 【4、5、3、7】 * 1. 取数组编号为i(i属于[0 , n-2])的数组值 a[i],即第一重循环 * 2. 假定a[i]为数组a[k](k属于[i,n-1])中的最小值a[min],即执行初始化 min =i

0评论2023-02-09407

Python vs Ruby: 谁是最好的 web 开发语言?
Python 和 Ruby 都是目前用来开发 websites、web-based apps 和 web services 的流行编程语言之一。 这两种语言在许多方面有相似之处。它们都是高级的面向对象的编程语言,都是交互式脚本语言、都提供标准库且支持持久化。但是,Python 和 Ruby 的解决方法却

0评论2023-02-09819

Python+Sklearn实现异常检测
目录离群检测 与 新奇检测Sklearn 中支持的方法孤立森林 IsolationForestLocal Outlier FactorOneClassSVMElliptic Envelope离群检测 与 新奇检测很多应用场景都需要能够确定样本是否属于与现有的分布,或者应该被视为不同的分布。离群检测(Outlier detectio

0评论2023-02-09736

Python异常与错误处理详细讲解 python的异常
基础知识优先使用异常捕获LBYL(look before you leap): 在执行一个可能出错的操作时,先做一些关键的条件判断,仅当满足条件时才进行操作。EAFP(eaiser to ask for forgiveness than permission): 不做事前检查,直接执行操作。后者更优: 代码简洁,效率更高

0评论2023-02-09962

Python多线程与同步机制浅析
目录线程实现Thread类函数方式继承方式同步机制同步锁Lock条件变量Condition信号量Semaphore事件Event屏障BarrierGIL全局解释器锁线程实现Python中线程有两种方式:函数或者用类来包装线程对象。threading模块中包含了丰富的多线程支持功能:threading.curren

0评论2023-02-09409

python基础之reverse和reversed函数的介绍及使用
目录一、reverse二、reversed附:Python中reverse和reversed反转列表的操作方法总结一、reversereverse()是python中列表的一个内置方法(在字典、字符串和元组中没有这个内置方法),用于列表中数据的反转例子:lista = [1, 2, 3, 4]lista.reverse()print(lista

0评论2023-02-09878

Python多进程并发与同步机制超详细讲解
目录多进程僵尸进程Process类函数方式继承方式同步机制状态管理Managers在《多线程与同步》中介绍了多线程及存在的问题,而通过使用多进程而非线程可有效地绕过全局解释器锁。 因此,通过multiprocessing模块可充分地利用多核CPU的资源。多进程多进程是通过mu

0评论2023-02-09469

Python进程间通讯与进程池超详细讲解 python进程池的作用
目录进程间通讯队列Queue管道Pipe进程池Pool在《多进程并发与同步》中介绍了进程创建与信息共享,除此之外python还提供了更方便的进程间通讯方式。进程间通讯multiprocessing中提供了Pipe(一对一)和Queue(多对多)用于进程间通讯。队列Queue队列是一个可用

0评论2023-02-09797

Python PyMuPDF实现PDF与图片和PPT相互转换
目录安装与简介MuPDFPyMuPDFPyMuPDF使用元数据页面Page代码示例PDF转图片图片转PDFPDF转PPT文章目录 安装与简介MuPDFPyMuPDF PyMuPDF使用元数据页面Page 代码示例PDF转图片图片转PDFPDF转PPTPyMuPDF提供了PDF及流行图片处理接口。安装与简介安装:pip install

0评论2023-02-09349

更多推荐