• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python使用海龟绘图实现贪吃蛇游戏

python 搞代码 4年前 (2022-01-08) 355次浏览 已收录 0个评论

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

在实现贪吃蛇游戏时,首先需要使用python内置的turtle模块来实现创建游戏窗体与键盘按键的监听工作,然后使用freegames模块进行贪吃蛇的绘制工作。

1、turtle模块

turtle模块是python的内置模块,所以在使用前需要使用import导入该模块。代码如下:

 import turtle

(1) 创建游戏窗体可以使用turtle模块中的setup()方法来实现。语法格式如下:

 turtle.setup(width=_CFG["width"],height=_CFG["height"],startx=_CFG["leftright"],starty=_CFG["topbottom"])

参数说明如下:

  • width:表示窗体的宽度,如果是整数,大小以像素为单位,如果是浮动,则为屏幕的一小部分;默认值为屏幕的50%。
  • height:表示窗体的高度,如果是整数,高度以像素为单位,如果是浮动,则为屏幕的一小部分;默认值为屏幕的75%。
  • startx:表示窗体显示在屏幕的横向位置,如果为正,则以像素为单位从屏幕左边缘开始,如果为负,则从右边缘开始,如果没有,则水平居中窗口。
  • starty:表示窗体显示在屏幕的纵向位置,如果为正,则以像素为单位从屏幕上边缘开始,如果为负,则从下边缘开始,如果没有,则垂直居中窗口。

创建游戏窗体的关键代码如下:

 import turtle      # 导入绘图海龟模块 turtle.setup(420, 420)      # 创建窗体大小 turtle.done()       # 停止画笔绘制,但绘图窗体不关闭

(2)通过turtle模块中的onkey()方法可以实现对应键盘中按键的监听工作。语法格式如下:

 turtle.onkey(fun,key)

参数说明如下:

  • fun:表示需要执行的方法。
  • key:该参数为字符串,表示键盘中对应的按键,例如“a”或“space”。

注意:在使用onkey()方法实现键盘的监听时,还需要调用turtle.listen()方法即可实现键盘按键的监听。

实现键盘中上、下、左、右按键监听工作的关键代码如下:

 turtle.listen()                        # 事件监听器 turtle.onkey(lambda: change(10, 0), 'Right')    # 按键盘右键,蛇向右走 turtle.onkey(lambda: change(-10, 0), 'Left')    # 按键盘左键,蛇向左走 turtle.onkey(lambda: change(0, 10), 'Up')       # 按键盘上键,蛇向上走 turtle.onkey(lambda: change(0, -10), 'Down')    # 按键盘下键,蛇向下走

2、freegames模块

freegames模块是第三方模块,所以在使用前需要先通过以下命令进行模块的安装:

 pip install freegames

模块安装完成以后,首先需要导入freegames模块中的vector与square函数。代码如下:

 from freegames import vector,square  # 导入向量类与绘图函数

(1)通过freegames模块中的vector()类可以根据指定的x、y坐标创建一个二维向量对象。vector()类的语法格式如下:

 class freegames.vector(x,y)

参数说明如下:

  • x:表示横向坐标。
  • y:表示纵向坐标。

实现定义游戏中的食物位置、蛇位置以及蛇移动的位置与距离。关键代码如下:

 food = vector(0,0)        # 食物 snake = [vector(10, 0)]   # 蛇 position = vector(0, -10) # 移动位置,一步的距离为10

(2)通过freegames模块中square函数可以实现在(x,y)处绘制指定边长大小的正方形,并填充指定颜色。square()函数的语法格式如下:

 freegames.square(x,y,size,name)

参数说明如下:

  • x:表示横向坐标。
  • y:表示纵向坐标。
  • size:表示绘制正方形的边长。
  • name:表示填充颜色的名称。

实现绘制游戏中食物、蛇。关键代码如下:

 square(body.x, body.y, 9, 'black') # 绘制黑色蛇 square(food.x, food.y, 9, 'green')     # 绘制绿色食物

实例

 from random import randrange          # 导入随机函数 from freegames import vector,square  # 导入向量函数与绘图函数 import turtle                         # 导入绘图海龟模块 food = vector(0,0)        # 食物 snake = [vector(10, 0)]   # 蛇 position = vector(0, -10) # 移动位置,一步的距离为10 def change(x, y):        # 改变蛇的移动方向 position.x = x position.y = y def is_inside(head):        # 判断蛇头是否在窗体内 return -200 <head.x <190 and -200 < head.y 190 def move(): # 可以让蛇移动的方法 head 确定蛇头的位置 head.move(position) 移动一步 if not is_inside(head) or in snake: 如果蛇的头部位于边界外或者蛇头在蛇的身体中 square(head.x, head.y, 9, 'red') 绘制红色蛇头,说明游戏结束 turtle.update() 更新 return snake.append(head) 更新蛇的位置 food: 如果蛇吃到食物 print('snake:', len(snake)) 根据蛇的长度进行加分 food.x=randrange(-15, 15) * 10 随机生成食物x坐标 food.y=randrange(-15, 随机生成食物y坐标 else: snake.pop(0) 移除蛇走过的坐标 turtle.clear() 清空蛇走过的位置 for body 循环遍历蛇的坐标 square(body.x, body.y, 'black') 绘制黑色蛇 square(food.x, food.y, 'green') 绘制绿色食物 turtle.ontimer(move, 100) 定时执行move函数 __name__== '__main__': 程序入口 turtle.setup(420, 420, 370, 0) 创建窗体大小 turtle.hideturtle() 隐藏箭头显示 turtle.tracer(false) 关闭绘画效果 move() 调用让蛇移动的方法 turtle.list来源gao.dai.ma.com搞@代*码网en() 事件监听器 turtle.onkey(lambda: change(10, 0), 'right') 按键盘右键,蛇向右走 change(-10, 'left') 按键盘左键,蛇向左走 change(0, 10), 'up') 按键盘上键,蛇向上走 -10), 'down') 按键盘下键,蛇向下走 turtle.done() 停止画笔绘制,但绘图窗体不关闭

更多关于python游戏的精彩文章请点击查看以下专题:

python俄罗斯方块游戏集合

python经典小游戏汇总

python微信跳一跳游戏集合

更多有趣的经典小游戏实现专题,分享给大家:

C++经典小游戏汇总

JavaScript经典游戏 玩不停

java经典小游戏汇总

javascript经典小游戏汇总

以上就是Python使用海龟绘图实现贪吃蛇游戏的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python使用海龟绘图实现贪吃蛇游戏

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址