「Pygame实战」众志成城同心战疫,为抗疫加油!(附抗疫小游戏)
今年,已经是我们和新冠疫情共处的第三年。不聚集,不远行,成了疫情之下的生活常态。
但意外和明天,你永远不知道哪个先来。
就在我们以为寒冬将尽,盛春即归时,各地的新冠病毒跟商量好了似的集体冒出来,搅乱了原
本相对平静的生活,也剥夺了本就在重复着“两点一线”的单调生活里所剩不多的那点自由。
今天小编给大家用代码带来一个抗击疫情的小游戏,愿疫情早日结束,回归平静的生活!
正文一、环境准备1)图片素材
2)环境安装本文用到的环境:Python3、Pycharm2020、Pygame模块以及部分自带的模块。
(环境安装包如果需要的话可以滴滴小编的啦,有问题也可以私信我啦,有时间的话都会给大
家解答的哦~)
二、效果展示1)游戏界面
2)运行游戏《抗击疫情》这款小游戏是分为三个关卡的,分为简单L、中等难度为M、最难的为H。这下
面的截图为最简单的啦~大家可以自己拿代码试试的哈
三、代码展示1)配置文件'''配置文件'''importos'''屏幕大小'''SCREENSIZE=(640,640)'''图片素材根目录'''PICTURE_ROOT_DIR=((),'resources/pictures')'''字体路径'''FONTPATH=((),'resources/font/')'''定义一些颜色'''BACKGROUNDCOLOR=(255,255,255)RED=(255,0,0)BLUE=(0,0,255)BLACK=(0,0,0)'''FPS'''FPS=40'''随机打乱图次数'''NUMRANDOM=1002)主程序
importosimportsysimportcfgimportrandomimportpygame'''判断游戏是否结束'''defisGameOver(board,size):assertisinstance(size,int)num_cells=size*sizeforiinrange(num_cells-1):ifboard[i]!=i:returnFalsereturnTrue'''将空白Cell左边的Cell右移到空白Cell位置'''defmoveR(board,blank_cell_idx,num_cols):ifblank_cell_idx%num_cols==0:returnblank_cell_idxboard[blank_cell_idx-1],board[blank_cell_idx]=board[blank_cell_idx],board[blank_cell_idx-1]returnblank_cell_idx-1'''将空白Cell右边的Cell左移到空白Cell位置'''defmoveL(board,blank_cell_idx,num_cols):if(blank_cell_idx+1)%num_cols==0:returnblank_cell_idxboard[blank_cell_idx+1],board[blank_cell_idx]=board[blank_cell_idx],board[blank_cell_idx+1]returnblank_cell_idx+1'''将空白Cell上边的Cell下移到空白Cell位置'''defmoveD(board,blank_cell_idx,num_cols):ifblank_cell_idxnum_cols:returnblank_cell_idxboard[blank_cell_idx-num_cols],board[blank_cell_idx]=board[blank_cell_idx],board[blank_cell_idx-num_cols]returnblank_cell_idx-num_cols'''将空白Cell下边的Cell上移到空白Cell位置'''defmoveU(board,blank_cell_idx,num_rows,num_cols):ifblank_cell_idx=(num_rows-1)*num_cols:returnblank_cell_idxboard[blank_cell_idx+num_cols],board[blank_cell_idx]=board[blank_cell_idx],board[blank_cell_idx+num_cols]returnblank_cell_idx+num_cols'''获得打乱的拼图'''defCreateBoard(num_rows,num_cols,num_cells):board=[]foriinrange(num_cells):(i)0:left,1:right,2:up,3:downdirection=(0,3)ifdirection==0:blank_cell_idx=moveL(board,blank_cell_idx,num_cols)elifdirection==1:blank_cell_idx=moveR(board,blank_cell_idx,num_cols)elifdirection==2:blank_cell_idx=moveU(board,blank_cell_idx,num_rows,num_cols)elifdirection==3:blank_cell_idx=moveD(board,blank_cell_idx,num_cols)returnboard,blank_cell_idx'''随机选取一张图片'''defGetImagePath(rootdir):imagenames=(rootdir)assertlen(imagenames)0(rootdir,(imagenames))'''显示游戏结束界面'''defShowInterface(screen,width,height):()font=(,width//15)title=('恭喜!你成功完成了拼图!',True,(233,150,122))rect=_rect()=(width/2,height/2.5)(title,rect)()whileTrue:():if(==)or(====_ESCAPE):()()()'''显示游戏开始界面'''defShowStartInterface(screen,width,height):()tfont=(,width//4)cfont=(,width//20)title=('中国加油',True,)content1=('万众一心,攻克艰难',True,)content2=('按H、M、L开始游戏',True,)trect=_rect()=(width/2,height/10)crect1=_rect()=(width/2,height/2.2)crect2=_rect()=(width/2,height/1.8)(title,trect)(content1,crect1)(content2,crect2)whileTrue:():if(==)or(====_ESCAPE):()()==:==ord('l'):==ord('m'):==ord('h'):()'''主函数'''defmain():加载图片game_img_used=(GetImagePath(_ROOT_DIR))game_img_used=(game_img_used,)game_img_used_rect=game_img__rect()游戏开始界面size=ShowStartInterface(screen,game_img_used_,game_img_used_)assertisinstance(size,int)num_rows,num_cols=size,sizenum_cells=size*size避免初始化为原图whileTrue:game_board,blank_cell_idx=CreateBoard(num_rows,num_cols,num_cells)ifnotisGameOver(game_board,size):break--事件捕获():----键盘操作==:==_==ord('a'):blank_cell_idx=moveL(game_board,blank_cell_idx,num_cols)==_==ord('d'):blank_cell_idx=moveR(game_board,blank_cell_idx,num_cols)==_==ord('w'):blank_cell_idx=moveU(game_board,blank_cell_idx,num_rows,num_cols)==_==ord('s'):blank_cell_idx=moveD(game_board,blank_cell_idx,num_cols)--判断游戏是否结束ifisGameOver(game_board,size):game_board[blank_cell_idx]=num_cells-1is_running=False游戏结束界面ShowInterface(screen,game_img_used_,game_img_used_)'''run'''if__name__=='__main__':main()总结抗击疫情,每个人都在努力,每个人也都要努力,加油!
大家出门的话一定记得要戴好口罩的啦~好啦小编的文章就写到这里结束,需要源码的小可
爱记得找我领取完整的素材源码的啦!
✨完整的素材等:私信小编06即可免费领取哦~往期推荐阅读——项目0.3【Turtle系列】端正心态正确面对疫情,守护安全防线不放松,共抗疫情,只待春来~
项目2.1【Pygame小游戏】真香~这款百万销量万人追捧大富翁游戏终于出现了~
项目2.2【Pygame小游戏】扫雷游戏50多岁了,但这款我能玩一年~(三个版本集合)
项目2.3战疫互动|宅家防疫,“消灭新冠病毒”小游戏火爆上线啦~(附完整源码)
还有更多更多源码等你来领区啦!文章汇总——汇总:Python文章合集|(入门到实战、游戏、Turtle、案例等)
(文章汇总还有更多你案例等你来学习啦~源码找我即可免费!)
推荐阅读
-
魔兽怀旧服:WLK三个野外升级圣地,小怪多到A不完,两个职业笑了
对于魔兽怀旧服即将到来的WLK版本,玩家最关心的事情就是如何迅速升满级,毕竟越快满级就意味着能够和大部队的步调一致,才能吃到版本初期的第一笔红利,所以已经有很多玩家去“不可描述服”提前熟练做任务升级的路线了,但是除了做任务以外,野外刷怪也是非常高效的升级方法,在WLK版本就有三个适合野外刷怪升级的地...
-
《混沌与秩序》一个法国经典3D手游神作值得推荐
游戏地图无比庞大…地图结构采用无缝连接的方式。让你和玩侠盗猎车手一样的感觉。可以360度旋转加放大缩小的上帝视角。让人感觉代入感十足。告别国产伪3D.没有自动寻路没有原地瞬移。一切依靠自己跑路完成任务就是人物实在是太丑拉!!!游戏名:混沌与秩序安卓用户可以使用一个名字叫:百分网的应用从里面下载…苹果...
-
玩游戏如何选择显示器
作为游戏玩家,一台电竞显示器是很有必要的,本文经过长时间研究参考,总结出了下面这些心的经验,分享给大家。游戏中玩家1、游戏为主,娱乐影视为辅应该如何选择?答案:游戏的首要考量就是刷新率,刷新率越高,游戏反应也越快,同理操作也更顺畅。按照流畅度选择;刷新率—分辨率—屏幕尺寸—屏幕材质。电竞赛事2、主...
-
新世界帷幕开启 《航海王 启航》7.0版本攻略
愉快的暑假即将过去,不少的学生玩家可能就要进入新年级中。9月《航海王启航》也将推出全新的7.0版本,不仅将剧情推进到鱼人岛篇章,同时新世界路飞等全新伙伴也会悉数登场,以及开放的新等级,优化后的激战之岛,这些都给玩家带来全新不同的体验,新学期开学必不可少的装备之一。新世界新面孔伙伴修炼归来新世界新剧情...