导语



​​

​微信小游戏很久之前刮起了一股切水果热潮,还记得嘛?我记得纯粹是因为这个游戏家里的孩子依旧没放弃~

比如:果盘忍者|水果切切切|一起切水果|全民切西瓜|王牌飞刀手

那时候——各种同类型的切水果小游戏层出不穷,并“前仆后继”地纷纷霸占小程序排行榜前列。那

场面简直是经典手游《水果忍者》的强势回归!

今天木木子手把手教大家写一款简单又好玩儿的切水果小游戏,来比拼一下吧——battlebattle!

​​

一栏【水果忍者游戏】就能获取游戏入口哦!

正文

本文是写的水果忍者小游戏啦~还是用的大家所熟悉的Pygame模块啦~本文超详细讲解哦!

一、准备中1.0游戏规则

Python版本的水果忍者小编初始化设置是玩家3条生命值,切到相应的水果相应加分,切到

易爆物比如炸弹这些就会相应的减少生命值,在生命值内可以一直切切切,切得越多分数越高,相应的生命值耗尽即结束游戏哦!快试试你能得几分?

1.1游戏图片素材(可修改)

1.2游戏字体素材(可修改)

二、环境安装

本文木子是用的Python3、Pycharm写的。模块Pygame、random随机出现水果以及一些自带的。

这里模块安装命令统一镜像源豆瓣:

pipinstall-i
三、开始敲代码3.0设置界面玩家生命值等
player_lives=3得分fruits=['melon','orange','pomegranate','guava','bomb']背景font=(((),'字体/'),42)得分的字体样式
3.3游戏窗口设置
WIDTH=800HEIGHT=500FPS=12标题gameDisplay=_mode((WIDTH,HEIGHT))水果在x坐标轴上的位置'y':800,'speed_x':(-10,10),y方向时的速度'throw':False,返回在[0.0,1.0]范围内的下一个随机浮点数,以保持水果在游戏中的显示。data[fruit]['throw']=Trueelse:data[fruit]['throw']=False
3.5用一个字典来存放水果的数据
data={}forfruitinfruits:generate_random_fruits(fruit)defhide_cross_lives(x,y):(("images/red_"),(x,y))
3.6在屏幕中绘制字体
font_name=_font('')defdraw_text(display,text,size,x,y):font=(font_name,size)text_surface=(text,True,WHITE)text_rect=text__rect()text_=(x,y)(text_surface,text_rect)
3.7绘制玩家的生命
defdraw_lives(display,x,y,lives,image):foriinrange(lives):img=(image)img_rect=_rect()img_=int(x+35*i)img_=(img,img_rect)
3.8游戏开始与结束画面
defshow_gameover_screen():(background,(0,0))draw_text(gameDisplay,"FRUITNINJA!",90,WIDTH/2,HEIGHT/4)ifnotgame_over:draw_text(gameDisplay,"Score:"+str(score),50,WIDTH/2,HEIGHT/2)draw_text(gameDisplay,"Pressanykeytostartthegame",64,WIDTH/2,HEIGHT*3/4)()waiting=Truewhilewaiting:(FPS)():==:()==:waiting=False
3.9游戏主循环
first_round=Truegame_over=True管理游戏循环whilegame_running:ifgame_over:iffirst_round:show_gameover_screen()first_round=Falsegame_over=Falseplayer_lives=3draw_lives(gameDisplay,690,5,player_lives,'images/red_')score=0():x方向上移动水果value['y']+=value['speed_y']递增value['t']+=1ifvalue['y']=800:(value['img'],(value['x'],value['y']))获取鼠标的位置,单位为像素ifnotvalue['hit']andcurrent_position[0]value['x']andcurrent_position[0]value['x']+60\andcurrent_position[1]value['y']andcurrent_position[1]value['y']+60:ifkey=='bomb':player_lives-=1ifplayer_lives==0:hide_cross_lives(690,15)elifplayer_lives==1:hide_cross_lives(725,15)elifplayer_lives==2:hide_cross_lives(760,15)私信小编06#即可获取免费的福利!

你们的支持是我最大的动力!!记得三连哦~mua欢迎大家阅读往期的文章哦~

文章汇总——

1.1Python—2021|已有文章汇总|持续更新,直接看这篇就够了~