python猴子吃桃子编程题答案,大学生python编程小游戏

  python猴子吃桃子编程题答案,大学生python编程小游戏

  源码及注释:

  导入简介及安装

  从系统导入出口

  从随机导入产生均匀分布的随机整数矩阵

  导入时间

  导入操作系统

  # 定义窗口分辨率

  屏幕宽度=700

  屏幕高度=600

  当前路径=操作系统。路径。ABS路径(OS。路径。目录名(_ _文件_ _))

  根路径=当前路径[:当前路径。查找(猴子摘桃子\) len(猴子摘桃子\)] \

  资源\ \图像\

  # 图片

  背景_图像_路径=根路径背景。 jpg

  MONKEY _ IMAGE _ PATH=root _ PATH MONKEY。巴布亚新几内亚

   APPLE _ IMAGE _ PATH=root _ PATH 苹果。巴布亚新几内亚

  跳转状态=假

  OVER_FLAG=False

  开始时间=无

  offset={pygame .K_LEFT: 0,pygame .K_RIGHT: 0,pygame .K_UP: 0,pygame .K_DOWN: 0}

  # 定义画面帧率

  帧速率=60

  # 定义动画周期(帧数)

  动画_循环=30

  刻度=0

  clock=pygame.time.Clock()

  # 猴子类

  班猴(pygame.sprite.Sprite):

  # 苹果的数量

  苹果数量=0

  def __init__(self,mon_surface,monkey_pos):

  py游戏。雪碧。雪碧。_ _ init _ _(self)

  self.image=mon_surface

  self.rect=self.image.get_rect()

  self.rect.topleft=monkey_pos

  自我速度=5

  # 控制猴子的移动

  定义移动(自身,_偏移):

  全局跳转_状态

  x=self.rect.left _offset[pygame .K_RIGHT] - _offset[pygame .K_LEFT]

  y=self.rect.top _offset[pygame .K_DOWN] - _offset[pygame .K_UP]

  如果y 0:

  self.rect.top=0

  跳转状态=真

  elif y=SCREEN _ HEIGHT-self。直肠。高度:

  自我。直肠。top=屏幕_高度-自身。直肠。高度

  跳转状态=假

  否则:

  self.rect.top=y

  跳转状态=真

  如果x 0:

  self.rect.left=0

  elif x SCREEN_WIDTH - self.rect。宽度:

  自我。直肠。左=SCREEN _ WIDTH-self。直肠。宽度

  否则:

  self.rect.left=x

  # 接苹果

  def picking_apple(自己,app_group):

  # 判断接到几个苹果

  picked _ apple=py游戏。雪碧。精灵碰撞(self,app_group,True)

  # 添加分数

  自我。apple _ num=len(picked _ apple)

  # 接到的苹果消失

  对于摘了苹果中的摘下的苹果:

  picked_apple.kill()

  # 苹果类

  苹果类(pygame.sprite.Sprite):

  def __init__(self,app_surface,apple_pos):

  py游戏。雪碧。雪碧。_ _ init _ _(self)

  self.image=app_surface

  self.rect=self.image.get_rect()

  self.rect.topleft=apple_pos

  self.speed=1

  定义更新(自我):

  全局开始时间

  如果开始时间为无:

  START_TIME=time.time()

  自我。直肠。top=(自我。速度*(1(时间。TIME()-START _ TIME)/40))

  if self.rect.top SCREEN_HEIGHT:

  # 苹果落地游戏结束

  全局覆盖_标志

  OVER_FLAG=True

  self.kill()

  # 初始化游戏

  pygame.init()

  屏幕=py游戏。展示。set _ mode((屏幕_宽度,屏幕_高度))

  pygame.display.set_caption(猴子接苹果)

  # 载入图片

  BACKGROUND _ surface=py游戏。形象。加载(背景图像路径).转换()

  MONKEY _ surface=py游戏。形象。load(MONKEY _ IMAGE _ PATH).convert_alpha()

  APPLE _ surface=py游戏。形象。加载(苹果图像路径).convert_alpha()

  # 创建猴子

  猴子=猴子(猴子_表面,(200,500))

  # 创建苹果组

  apple _ group=py游戏。雪碧。群组()

  # 分数字体

  score _ font=py游戏。字体。系统字体(“arial”,40)

  # 主循环

  虽然正确:

  if OVER_FLAG:

  破裂

  # 控制游戏最大帧率

  时钟.滴答(帧速率)

  # 绘制背景

  screen.blit(background_surface,(0,0))

  如果ticks=ANIMATE_CYCLE:

  刻度=0

  # 产生苹果

  如果刻度% 30==0:

  苹果=苹果(苹果_surface,

  【randint(0,SCREEN _ WIDTH-apple _ surface。get _ WIDTH(),-apple_surface.get_height()])

  apple_group.add(苹果)

  # 控制苹果

  apple_group.update()

  # 绘制苹果组

  apple_group.draw(屏幕)

  # 绘制猴子

  screen.blit(monkey_surface,monkey.rect)

  刻度=1

  # 接苹果

  猴子。采摘_苹果(苹果_群)

  # 更新分数

  分数_表面=分数_字体。呈现(str(monkey。apple _ num),True,(0,0,255))

  screen.blit(score_surface,(620,10))

  # 更新屏幕

  pygame.display.update()

  对于pygame.event.get()中的事件:

  if event.type==pygame .退出:

  pygame.quit()

  退出()

  # 控制方向

  if event.type==pygame .按键:

  if event.key in offset:

  if event.key==pygame .kup:

  offset[event.key]=80

  否则:

  offset[event.key]=monkey.speed

  elif event.type==pygame .键盘输入:

  if event.key in offset:

  offset[event.key]=0

  # 移动猴子

  如果跳转_状态:

  抵消【pygame .K_DOWN]=5

  抵消【pygame .K_UP]=0

  monkey.move(偏移)

  # 游戏结束推出界面

  分数_表面=分数_字体。呈现(str(monkey。apple _ num),True,(0,0,255))

  Over _ surface=score _ font。渲染(u 游戏结束!True,(0,0,255))

  screen.blit(background_surface,(0,0))

  screen.blit(score_surface,(620,10))

  screen.blit(over_surface,(250,270))

  虽然正确:

  pygame.display.update()

  对于pygame.event.get()中的事件:

  if event.type==pygame .退出:

  pygame.quit()

  退出()

  食用指南:使用的图片

  monkey.png:

  background.jpg:

  apple.png:

  这是我的文件目录,学习者也可改为自己的:

  更改的代码位置:

  根路径=当前路径[:当前路径。查找(猴子摘桃子\) len(猴子摘桃子\)] \

  资源\ \图像\

  游戏截图:

  到此这篇关于基于Python-Pycharm实现的猴子摘桃小游戏的文章就介绍到这了,更多相关计算机编程语言猴子摘桃小游戏内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

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

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