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

Python
384
0
0
2023-06-28
标签   Python游戏
目录
  • 导语
  • 一、环境安装
  • 二、代码展示
  • 三、效果展示
  • 1)简洁版炫舞
  • ​2)随机截图
  • 3)MISS节拍

导语

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

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

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

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

一、环境安装

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

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

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

二、代码展示

主程序:

import pygame
import sys
import random
 
import time
import threading
 
random.random()
flag=
 
# 创建线程对象
 
 
# 初始化pygame
pygame.init()
# 定义变量
size = width, height =,768
bg = (, 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=.5
list=[]
list=[]
 
def fuyuan():
    x=
    global list,list
    list.clear()
    for i in range(,10):
        
        list.append(list[i-1])
        
    for i in list:
        
        if i==:
            img = pygame.image.load("zuo_hong.png")
            screen.blit(img, [x,])
            pygame.display.flip()
        if i==:
            img = pygame.image.load("shang_hong.png")
            screen.blit(img, [x,])
            pygame.display.flip()
        if i==:
            img = pygame.image.load("you_hong.png")
            screen.blit(img, [x,])
            pygame.display.flip()
        if i==:
            img = pygame.image.load("xia_hong.png")
            screen.blit(img, [x,])
            pygame.display.flip()
        x=x+
    x=                    
def chushi():
    global x
    x=
 
    screen.fill(bg)
    global list
    global list
    list.clear()
    list.clear()
    for i in range(,9):
        i=random.randint(,4)
        list.append(i)
    list.append()
    #print(list)
  
    
    for i in range(,10):   
        list.append(list[i-1])
    #print(list)
    
    img = pygame.image.load("jindu.jpg")
    screen.blit(img, [,400])
    pygame.display.flip()
    x=
    for i in list:
        
        if i==:
            img = pygame.image.load("zuo_hong.png")
            screen.blit(img, [x,])
            pygame.display.flip()
        if i==:
            img = pygame.image.load("shang_hong.png")
            screen.blit(img, [x,])
            pygame.display.flip()
        if i==:
            img = pygame.image.load("you_hong.png")
            screen.blit(img, [x,])
            pygame.display.flip()
        if i==:
            img = pygame.image.load("xia_hong.png")
            screen.blit(img, [x,])
            pygame.display.flip()
        x=x+
    x=
        
x=150
flag=
def yidong():
    #print("sss")
    global flag
    global list
    global x
    global clock
    clock.tick()
    #print(x)
    img = pygame.image.load("jindu.jpg")
    screen.blit(img, [,400])   
    pygame.draw.circle(screen,(,0,176),(x1,431),20,1000)
    #print(x)
    pygame.display.flip()
    x=x1+sudu
    if x>780:
        #print(len(list))
        if len(list)==:
            while x<780:
                flag=
                #print(x)
                clock.tick()
                #print(x)
                img = pygame.image.load("jindu.jpg")
                screen.blit(img, [,400])   
                pygame.draw.circle(screen,(,0,176),(x1,431),20,1000)
                pygame.display.flip()
                x=x1+sudu 
            flag=    
            #chushi()
            #list.clear()
            
            
        x=150 
        if len(list)>:
             
            screen.fill((,0,0))
            miss()
            while x<780:
                flag=
                #print(x)
                clock.tick()
                #print(x)
                img = pygame.image.load("jindu.jpg")
                screen.blit(img, [,400])   
                pygame.draw.circle(screen,(,0,176),(x1,431),20,1000)
                pygame.display.flip()
                x=x1+sudu
            x=150    
            flag=
        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 
        
t = task()
t.start()
 
#yidong()
 
 
 
 
chushi()
x=
def miss():
    font = pygame.font.Font(None,)
    text = font.render('Miss!', True, (,0,176), (0, 0, 0))
    screen.blit(text, (, 150))
    
def chenggong():
    global x
    
    screen.fill((,0,0))
    global x
    global flag
    x=
    flag=
    if x<600:
        font = pygame.font.Font(None,)
        text = font.render('Good!', True, (,0,176), (0, 0, 0))
        screen.blit(text, (, 150))
    if x>625:
        font = pygame.font.Font(None,)
        text = font.render('Good!', True, (,0,176), (0, 0, 0))
        screen.blit(text, (, 150))
    if x>=600 and x1<=625:
        font = pygame.font.Font(None,)
        text = font.render('Perfict!', True, (,0,176), (0, 0, 0))
        screen.blit(text, (, 150))
    x=150    
        
while True:
    clock.tick()
    
    # 设置初始值
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
        # 图像移动 KEYDOWN 键盘按下事件
        # 通过 key 属性对应按键
        cmd=
        if event.type == pygame.KEYDOWN and flag==:
            #print("sssss")
            #if event.key ==:
            #   cmd=
            if event.key == pygame.K_ESCAPE:
                t.stop()
                sys.exit()
            if event.key == pygame.K_UP:
                cmd=
            if event.key == pygame.K_DOWN:
                cmd=
            if event.key == pygame.K_RIGHT:
                cmd=
            if event.key == pygame.K_LEFT:
                cmd=
            if event.key == pygame.K_SPACE:
                cmd=
                if len(list)==:
                    del list[]
                    chenggong() 
                     
                    
                    continue
                
            
            if cmd==list[]:
                
                if cmd==:
                    #print(x)
                    img = pygame.image.load("zuo_lv.png")
                    screen.blit(img, [x,])
                    pygame.display.flip()
                    
                if cmd==:
                    #print(x)
                    img = pygame.image.load("shang_lv.png")
                    screen.blit(img, [x,])
                    pygame.display.flip()
                   
                if cmd==:
                    #print(x)
                    img = pygame.image.load("you_lv.png")
                    screen.blit(img, [x,])
                    pygame.display.flip()   
                    
                    
                if cmd==:
                    #print(x)
                    img = pygame.image.load("xia_lv.png")
                    screen.blit(img, [x,])
                    pygame.display.flip()
 
                x=x+
                del list[]
            else:
                print(list)
                #print("Aaaa")
                fuyuan()
                x=
                
                
                
                   
           
            #print("sss")
            #screen.fill((,0,0))
            
           
            
            
    '''
    # 移动图像
    position = position.move(site)
    # 填充背景
    screen.fill(bg)
    # 放置图片
    screen.blit(img, position)
    # 更新显示界面
    pygame.display.flip()
    '''

三、效果展示

1)简洁版炫舞

​2)随机截图

3)MISS节拍