吃水果游戏玩法,python切水果游戏

  吃水果游戏玩法,python切水果游戏

  相信大家对吃豆人和切水果这两个游戏都很熟悉。本文将使用Python中的Pygame模块编写一个结合了吃豆人和切水果的新游戏:疯狂吃水果。有兴趣的可以去了解一下。

  00-1010简介1。准备1。游戏玩法2。环境安装3。材料准备2。代码显示3。效果显示

  

目录

  嘿嘿!子木今天闪了——,给大家写了很多内容~

  涉及人工智能、新手、爬虫、数据分析的游戏(这个一般不审核).

  PS:

  吃豆人,是我写的,嗯?

  Python Pygame的吃豌豆游戏在实战中的实现

  我写了切水果,嗯

  PythonPygame水果忍者游戏的实战实现

  今天两人聚在一起做了一个新游戏,哈哈哈。名字叫《疯狂吃水果》小游戏。其实听起来挺好的,但是做出来的效果其实没有想象中那么高大上!(给你打预防针)

  本文基于Pygame写的一个游戏。

  

导语

  

一、准备中

  随机掉落:西瓜奖励点,葡萄奖励点,炸弹命中点最初是两个。移动鼠标右键。加多少分或减多少分?就等你自己玩了。都玩出来就不好玩了!每次游戏代码都是给你存的,嘻嘻,自己感受~

  

1)游戏玩法

  边肖的环境:Python3,Pycharm社区版,tkinter,Pygame模块,部分自带模块未显示。

  设置:pip install-I https://pypi.douban.com/simple/模块名称

  

2)环境安装

  准备背景音乐就更刺激了!还记得seven这首歌,挺好听的。

  准备好的材料,图片,背景的落物等。

  

3)素材准备

  代码太多了!仅显示部分

  主程序

  导入tkinter

  随机导入

  导入时间

  导入参数

  导入图像

  进口奖金

  进口扣除

  导入Bean

  进口炸弹

  导入pygame

  #定义物质清单(包括额外的西瓜和消除葡萄和炸弹)

  bonusth=[]

  演绎th=[]

  大炸弹=[]

  #定义bean变量并保存bean对象。

  bean=

  #定义当前用户的初始分数

  分数=0

  生命=2

  #定义游戏状态

  游戏状态=参数。游戏_开始

  #创建表单

  game_window=tkinter。Tk()

  #窗口文本设置

  game_window.title(我爱水果)

  #窗口位置处理

  screen width=game _ window . winfo _ screen width()

  screen height=game _ window . winfo _ screen height()

  size=%dx%d %d %d %(参数。游戏宽度,参数。游戏高度,(屏幕宽度-参数。游戏_宽度)/2,50)

  game_window.geometry(大小)

  #加载游戏中使用的所有图片

  background_image,bean_image,Bonus_image,Bomb_image,Deduction _ image=image . load _ image(tkinter)

  开始,停止=image . load _ state _ image(tkinter)

  #获取画布

  window_canvas=tkinter。画布(游戏窗口)

  #帆布包装方法

  窗口_

  canvas.pack(expand=tkinter.YES, fill=tkinter.BOTH)

  # 时间标志

  count = 0

  num = 30

  def create_fruit():# 生成水果

   global count

   global num

   global score

   if score % 10 ==1:

   if num >= 8:

   num -= 8

   count += 1

   if count % num == 0:

   c = random.randint(1,10)

   if c <= 5:

   # 加分水果生成

   bonus = Bonus.Bonus(Bonus_image)

   bonusth.append(bonus) # 物质添加到列表中

   window_canvas.create_image(bonus.x,bonus.y,anchor = tkinter.NW,image=bonus.image,tag=bonus.tag)

   elif c<=8:

   # 销分水果生成

   deduction = Deduction.Deduction(Deduction_image)

   deductionth.append(deduction)

   window_canvas.create_image(deduction.x,deduction.y,anchor = tkinter.NW,image=deduction.image,tag=deduction.tag)

   else:

   #炸弹生成

   bigbomb = Bomb.BigBomb(Bomb_image)

   bigbombs.append(bigbomb)

   window_canvas.create_image(bigbomb.x,bigbomb.y,anchor = tkinter.NW,image=bigbomb.image,tag=bigbomb.tag)

  def step_fruit():

   # 遍历所有的物质,调用移动的方法

   for bonus in bonusth:

   bonus.step(window_canvas)

   for deduction in deductionth:

   deduction.step(window_canvas)

   for bigbomb in bigbombs:

   bigbomb.step(window_canvas)

  def judge_state(event):

   global game_state

   if game_state == Param.GAME_START:

   game_state = Param.GAME_RUNNING

   # 画分

   window_canvas.create_text(20, 20, text="分数:%d" % (score), anchor=tkinter.NW, fill="white",\

   font="time 12 bold",tag="SCORE")

   # 画生命

   window_canvas.create_text(20, 50, text="生命:%d" % (life), anchor=tkinter.NW, fill="white",\

   font="time 12 bold",tag="LIFE")

   # 删除启动图片

   window_canvas.delete("Start")

   elif game_state == Param.GAME_STOP:

   window_canvas.delete("bean")

   window_canvas.delete("STOP")

   game_state = Param.GAME_START

   game_start()

  def bean_move(event):

   if game_state == Param.GAME_RUNNING:

   now_x = bean.x

   now_y = bean.y

   bean.x = event.x - bean.w/2

   bean.y = event.y - bean.h/2

   window_canvas.move("bean", bean.x-now_x, bean.y-now_y)

  def out_of_bounds():

   # 获取所有物质,判断是否越界

   for deduction in deductionth:

   if deduction.out_of_bounds():

   window_canvas.delete(deduction.tag)

   deductionth.remove(deduction)

   for bonus in bonusth:

   global outnum

   if bonus.out_of_bounds():

   outnum += 1

   window_canvas.delete(bonus.tag)

   bonusth.remove(bonus)

   if outnum >= 5:

   game_state = Param.GAME_STOP

   # 画游戏结束的状态

   game_over()

   for bigbomb in bigbombs:

   if bigbomb.out_of_bounds():

   window_canvas.delete(bigbomb.tag)

   bigbombs.remove(bigbomb)

  def bomb_action():

   global score

   global life

   global bean

   global game_state

   #加分

   for bonus in bonusth:

   if bonus.bomb(bean):

   window_canvas.delete(bonus.tag)

   bonusth.remove(bonus)

   score += 3

   #减分

   for deduction in deductionth:

   if deduction.bomb(bean):

   window_canvas.delete(deduction.tag)

   deductionth.remove(deduction)

   if score - 5 < 0:

   score = 0

   game_state = Param.GAME_STOP

   # 画游戏结束的状态

   game_over()

   else:

   score -= 5

   for bigbomb in bigbombs:

   if bigbomb.bomb(bean):

   window_canvas.delete(bigbomb.tag)

   bigbombs.remove(bigbomb)

   # 如果分数或生命小于0 游戏结束

   if life - 1 <= 0:

   life = 0

   game_state = Param.GAME_STOP

   # 画游戏结束的状态

   game_over()

   else:

   life -= 1

  def draw_action():

   # 画分

   window_canvas.delete("SCORE")

   # 画生命

   window_canvas.delete("LIFE")

   window_canvas.create_text(20,20,text="分数:%d"%(score),anchor=tkinter.NW,fill="white",font="time 12 bold",tag="SCORE")

   window_canvas.create_text(20,50,text="生命:%d"%(life),anchor=tkinter.NW,fill="white",font="time 12 bold",tag="LIFE")

  def game_over():

   global game_state

   game_state = Param.GAME_STOP

   for deduction in deductionth:

   window_canvas.delete(deduction.tag)

   for bonus in bonusth:

   window_canvas.delete(bonus.tag)

   for bigbomb in bigbombs:

   window_canvas.delete(bigbomb.tag)

   deductionth.clear()

   bonusth.clear()

   bigbombs.clear()

   window_canvas.create_image(0,0,anchor=tkinter.NW,image=Stop,tag="STOP")

   if pygame.mixer.music.get_busy() == True:

   pygame.mixer.music.stop()#停止播放

  def game_start():

   global score

   global life

   global num

   global outnum

   num = 30

   score = 0

   life = 2

   outnum = 0

   # 画游戏背景

   window_canvas.create_image(0, 0, anchor=tkinter.NW, image=background_image, tag="background")

   # 创建豆豆对象

   global bean

   bean = Bean.Bean(bean_image)

   window_canvas.create_image(bean.x, bean.y, anchor=tkinter.NW, image=bean.image, tag="bean")

   window_canvas.create_image(0, 0, anchor=tkinter.NW, image=Start, tag="Start")

   pygame.mixer.init()

   pygame.mixer.music.load(Seve(钢琴版).mp3) #加载背景音乐

   if pygame.mixer.music.get_busy() == False:

   pygame.mixer.music.play(300,0)#重复300次,从第一秒开始播放

  def game():

   if game_state == Param.GAME_START:

   game_start()

   # 鼠标监听

   window_canvas.bind("<Motion>",bean_move)

   window_canvas.bind("<Button-1>",judge_state)

   while True:

   if game_state == Param.GAME_RUNNING:

   # 物质入场

   create_fruit()

   # 物质动起来

   step_fruit()

   # 删除越界的物质

   out_of_bounds()

   # 检测碰撞

   bomb_action()

   if score >= 0:

   # 画分和生命

   draw_action()

   # 更新显示

   game_window.update()

   time.sleep(0.04)

  if __name__ == "__main__":

   game()

   game_window.mainloop()

  

  

  

三、效果展示

  1)游戏界面

  

  2)随机截图

  

  3)消耗结束

  

  以上就是Python+Pygame实战之疯狂吃水果游戏的实现的详细内容,更多关于Python Pygame疯狂吃水果的资料请关注盛行IT软件开发工作室其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: