Python+Pygame实战之炫舞小游戏的实现
顾木子吖 人气:0导语
昨天去老姐家里蹭饭,进门的时候就看到佳佳妹(我姐的女儿)低头霹雳吧啦一顿操作猛如虎,饭好了都还在玩儿,什么东西这么好玩?一走进就看到这是一款酷似炫舞的小游戏。(死去的回忆突然在攻击我~没想到现在还有这款游戏就是不知道升级了多少次啦)
不知道你们还记不记得曾经有个风靡一时的舞蹈游戏炫舞。
我读小学的时候,大概是09年吧,这个游戏非常火爆,如果你去网吧,十个女生里,有十一个都是在玩炫舞,像我就是其中的一员。那个时候还没有英雄联盟王者荣耀,女生玩炫舞,男生玩地下城穿越火线!
提到QQ炫舞,可能很多人想到的第一个词是“青春”。恍然间,这个承载了无数人回忆与时光的游戏品牌,已经走到了第十几个年头。今天小编就来给大家尝试做一款简单的简陋版的小游戏——《舞动青春*炫舞》。(其实是简单的五分之一的成品,感觉今天洗头发又要掉一堆了)
一、环境安装
小编使用的环境:Python3、Pycharm社区版、pygame模块,部分自带的就不一一 展示啦。
模块安装:pip install -i http://pypi.douban.com/simple/+模块名
背景图片大家可以自己修改的啦~嘿嘿怎么好看怎么来撒!
二、代码展示
主程序:
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)简洁版炫舞
2)随机截图
3)MISS节拍
加载全部内容