用python做一个贪吃蛇游戏,简单的贪吃蛇游戏

  用python做一个贪吃蛇游戏,简单的贪吃蛇游戏

  这篇文章主要为大家详细介绍了大蟒实现简单贪吃蛇小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  本文实例为大家分享了大蟒实现简单贪吃蛇的具体代码,供大家参考,具体内容如下

  1. 导入游戏库

  导入pgzrun

  随机导入

  2.游戏初始化

  # 窗口大小

  宽度=600

  身高=480

  # 贪吃蛇

  bodys=[ [100,100],[80,100],[60,100],[40,100],[20,100]]

  head=[100,100]

  d=对

  # 食物

  食物=[290,290]

  # 得分

  分数=0

  3.游戏窗口绘制

  定义绘制():

  #清空屏幕

  screen.clear()

  # 绘制网格

  对于(1,24):范围内的英语字母表中第九个字母

  screen.draw.line((0,i*20),(600,i*20), gray )

  对于范围(1,30):内的英语字母表中第九个字母

  screen.draw.line((i*20,0),(i*20,480), gray )

  #绘制蛇

  对于正文中的正文:

  rect=Rect(body,(20,20))

  screen.draw.filled_rect(rect,(0,0,255))

  inner=[body[0] 2,body[1] 2]

  rect=Rect(inner,(15,15),center=center )

  screen.draw.filled_rect(rect,(0,0,180))

  # 绘制头

  rect=Rect(head,(20,20))

  screen.draw.filled_rect(rect,(0,200,0))

  inner=[head[0] 2,head[1] 2]

  rect=Rect(inner,(15,15))

  screen.draw.filled_rect(rect,(0,255,12))

  # 绘制食物

  screen.draw.filled_circle(food,10, #ffddee )

  # 绘制得分

  屏幕。画吧。text( score : str(score),(20,20),color=orange ,fontsize=30)

  4.蛇的移动功能

  定义运行():

  全球食物、d、头、身体、分数

  # 新增一个格子的身体

  如果d==右 :

  head[0]=20

  elif d==left:

  head[0] -=20

  elif d==up:

  head[1] -=20

  else:

  head[1]=20

  bodys.insert(0,list(head))

  如果head[0]=food[0]-10和头[1]==菜[1] - 10:

  food=[random.randint(1,30)*20-10,random.randint(1,20)*20-10]

  得分=1

  如果得分3:

  clock.unschedule(运行)

  clock.schedule_interval(run,0.1)

  else:

  bodys.pop()

  # 撞墙后重新开始

  如果头[0]0或head[0]580或head[1]0或头[1]480或头进去

  第:号

  # 蛇回到初始位置

  bodys=[[100,100],[80,100],[60,100],[40,100],[20,100]]

  head=[100,100]

  # 方向向右

  d=对

  # 得分清零

  分数=0

  clock.unschedule(运行)

  clock.schedule_interval(run,0.3)

  5.按键控制蛇的行走方向

  # 按键控制蛇的行走方向

  def on_key_down(键):

  全球拥有

  # 改变方向

  if key==keys .向下和d!=向上 :

  d=向下

  if key==keys .向上和向下!=向下 :

  d=向上

  if key==keys .左转d!=对

  :

  d = left

  if key == keys.RIGHT and d != left:

  d = right

  6.启动游戏

  

# 定时设置

  clock.schedule_interval(run, 0.3)

  # 播放音乐

  music.play(music.mp3)

  # 启动游戏

  pgzrun.go()

  完整代码

  

# 1.导入库

  import pgzrun

  import random

  # 2.初始化

  # 窗口大小

  WIDTH = 600

  HEIGHT = 480

  # 贪吃蛇

  bodys = [[100, 100], [80, 100], [60, 100], [40, 100], [20, 100]]

  head = [100, 100]

  d = right

  # 食物

  food = [290, 290]

  # 得分

  score = 0

  # 3.游戏窗口绘制

  def draw():

      # 清空屏幕

      screen.clear()

      # 绘制网格

      for i in range(1, 24):

          screen.draw.line((0, i * 20), (600, i * 20), gray)

      for i in range(1, 30):

          screen.draw.line((i * 20, 0), (i * 20, 480), gray)

      # 绘制蛇

      for body in bodys:

          rect = Rect(body, (20, 20))

          screen.draw.filled_rect(rect, (0, 0, 255))

          inner = [body[0] + 2, body[1] + 2]

          rect = Rect(inner, (15, 15), center=center)

          screen.draw.filled_rect(rect, (128, 0, 128)) # 紫色

      # 绘制头

      rect = Rect(head, (20, 20))

      screen.draw.filled_rect(rect, (0, 200, 0))

      inner = [head[0] + 2, head[1] + 2]

      rect = Rect(inner, (15, 15))

      screen.draw.filled_rect(rect, (0, 255, 12))

      # 绘制食物 颜色为红色

      screen.draw.filled_circle(food, 10, #ff0000)

      # 绘制得分

      screen.draw.text(score: + str(score), (20, 20), color="red", fontsize=30)

  # 4.蛇的移动功能

  def run():

      global food, d, head, bodys, score

      # 新增一个格子的身体

      if d == right:

          head[0] += 20

      elif d == left:

          head[0] -= 20

      elif d == up:

          head[1] -= 20

      else:

          head[1] += 20

      bodys.insert(0, list(head))

      if head[0] == food[0] - 10 and head[1] == food[1] - 10:

          food = [random.randint(1, 30) * 20 - 10, random.randint(1, 20) * 20 - 10]

          score += 1

          if score > 10:

              clock.unschedule(run)

              clock.schedule_interval(run, 0.1)

      else:

          bodys.pop()

      # 撞墙后重新开始

      if head[0] < 0 or head[0] > 580 or head[1] < 0 or head[1] > 480 or head in bodys[1:]:

          # 蛇回到初始位置

          bodys = [[100, 100], [80, 100], [60, 100], [40, 100], [20, 100]]

          head = [100, 100]

          # 方向向右

          d = right

          # 得分清零

          score = 0

          clock.unschedule(run)

          clock.schedule_interval(run, 0.3)

  # 按键控制蛇的行走方向

  def on_key_down(key):

      global d

      # 改变方向

      if key == keys.DOWN and d != up:

          d = down

      if key == keys.UP and d != down:

          d = up

      if key == keys.LEFT and d != right:

          d = left

      if key == keys.RIGHT and d != left:

          d = right

  # 6.启动游戏

  # 定时设置

  clock.schedule_interval(run, 0.3)

  # 播放音乐

  music.play(music.mp3)

  # 启动游戏

  pgzrun.go()

  以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持盛行IT软件开发工作室。

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

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