iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python使用海龟绘图实现贪吃蛇游戏
  • 885
分享到

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

python贪吃蛇 2022-06-02 22:06:36 885人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

在实现贪吃蛇游戏时,首先需要使用python内置的turtle模块来实现创建游戏窗体与键盘按键的监听工作,然后使用freegames模块进行贪吃蛇的绘制工作。 1、turtle模块 turtle模块是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 = snake[-1].copy()    # 确定蛇头的位置
    head.move(position)        # 移动一步
    if not is_inside(head) or head in snake:   # 如果蛇的头部位于边界外或者蛇头在蛇的身体中
        square(head.x, head.y, 9, 'red')     # 绘制红色蛇头,说明游戏结束
        turtle.update()                      # 更新
        return
    snake.append(head)                       # 更新蛇的位置
    if head == food:                      # 如果蛇吃到食物
        print('Snake:', len(snake))       # 根据蛇的长度进行加分
        food.x = randrange(-15, 15) * 10  # 随机生成食物x坐标
        food.y = randrange(-15, 15) * 10  # 随机生成食物y坐标
    else:
        snake.pop(0)            # 移除蛇走过的坐标
    turtle.clear()              # 清空蛇走过的位置
    for body in snake:          # 循环遍历蛇的坐标
        square(body.x, body.y, 9, 'black') # 绘制黑色蛇
    square(food.x, food.y, 9, 'green')     # 绘制绿色食物
    turtle.update()
    turtle.ontimer(move, 100)           # 定时执行move函数

if __name__ == '__main__':                  # 程序入口
    turtle.setup(420, 420, 370, 0)          # 创建窗体大小
    turtle.hideturtle()                     # 隐藏箭头显示
    turtle.tracer(False)                   # 关闭绘画效果
    move()          # 调用让蛇移动的方法
    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')    # 按键盘下键,蛇向下走
    turtle.done()   # 停止画笔绘制,但绘图窗体不关闭

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

python俄罗斯方块游戏集合

python经典小游戏汇总

python微信跳一跳游戏集合

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

c++经典小游戏汇总

javascript经典游戏 玩不停

java经典小游戏汇总

javascript经典小游戏汇总

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Python使用海龟绘图实现贪吃蛇游戏

本文链接: https://www.lsjlt.com/news/10988.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python实现贪吃蛇游戏
    文章目录 1、效果2、实现过程3、代码 1、效果 2、实现过程 导入 Pygame 和 random 模块。初始化 Pygame。设置游戏界面大小、背景颜色和游戏标题。定义颜色常量。...
    99+
    2023-09-29
    python 游戏 pygame
  • JavaScript实现贪吃蛇游戏
    本文实例为大家分享了JavaScript实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下 通过JavaScript,我们可以实现贪吃蛇游戏,具体功能如下: (1)通过按上下左右键来...
    99+
    2024-04-02
  • Java实现贪吃蛇游戏
    下面是一个简单的Java实现贪吃蛇游戏的示例代码:```javaimport javax.swing.*;import java.a...
    99+
    2023-08-09
    Java
  • QT实现贪吃蛇游戏
    为了熟悉QT的相关知识,我用了大约8个小时的时间用QT再次写了一遍贪吃蛇。 因为QT的机制和平时写的程序流程不同,所以程序中可能没有遵守代码规范。 运行效果: 程序内除了实现贪吃蛇...
    99+
    2024-04-02
  • python怎么实现贪吃蛇游戏
    要实现贪吃蛇游戏,可以使用Python中的pygame库来进行游戏界面的绘制和键盘事件的监听。以下是一个简单的贪吃蛇游戏的示例代码:...
    99+
    2023-08-09
    python
  • pygame实现贪吃蛇游戏
    本文实例为大家分享了pygame实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下 为了简化起见,游戏素材暂定为两张简单的图片(文中用的是30*30)。大家很方便就能制作。 背景也...
    99+
    2024-04-02
  • 用JS实现贪吃蛇游戏
    本文实例为大家分享了JS实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下 效果图: 完整代码如下: html: <!DOCTYPE html> <html la...
    99+
    2024-04-02
  • python如何实现贪吃蛇游戏
    这篇文章主要介绍了python如何实现贪吃蛇游戏,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。游戏实现效果如下:后面有完整代码和解析import sysimport...
    99+
    2023-06-14
  • java使用GUI实现贪吃蛇游戏
    本文实例为大家分享了java使用GUI实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下 整个代码分为三部分 1.游戏开始界面2.data基本图片的添加3.面板,将小蛇画到面板上 这...
    99+
    2024-04-02
  • 用JS实现贪吃蛇小游戏
    本文实例为大家分享了JS实现贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 效果图: 完整代码如下: HTML <!DOCTYPE html> <html la...
    99+
    2024-04-02
  • python实现简单的贪吃蛇游戏
    本文实例为大家分享了python实现贪吃蛇游戏的具体代码,加入按钮、难度、音乐、得分功能,供大家参考,具体内容如下 贪吃蛇小游戏,可以显示出得分,又背景音乐,难度选择和开始重启按钮设...
    99+
    2024-04-02
  • python实现简单贪吃蛇小游戏
    本文实例为大家分享了python实现简单贪吃蛇的具体代码,供大家参考,具体内容如下 1. 导入游戏库 import pgzrun import random 2.游戏初始化 # 窗口...
    99+
    2024-04-02
  • JS实现贪吃蛇小游戏
    目录一、初始化结构二、渲染蛇的颜色 三、蛇的运动四、蛇死亡的判定方式 蛇有两种判定死亡的方式五、食物的创建六、蛇吃食物边长七、开始游戏功能八、暂停/继续游戏功能页面效果: 贪吃蛇游...
    99+
    2024-04-02
  • 如何使用HTML5实现贪吃蛇游戏
    这篇文章将为大家详细讲解有关如何使用HTML5实现贪吃蛇游戏,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 游戏操作说明 通过方向键控制贪吃蛇上下左右移动。贪吃蛇吃到...
    99+
    2024-04-02
  • 如何实现贪吃蛇Python小游戏
    这篇文章主要介绍“如何实现贪吃蛇Python小游戏”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何实现贪吃蛇Python小游戏”文章能帮助大家解决问题。贪吃蛇Python小游戏(源码+注释+粘贴即...
    99+
    2023-07-05
  • pygame实现贪吃蛇小游戏
    本文实例为大家分享了pygame实现贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 由于这段时间实在是太聊了,没什么事做,游戏也玩腻了,所以玩起来pygame。pygame是真的容...
    99+
    2024-04-02
  • C#实现贪吃蛇小游戏
    本文实例为大家分享了C#实现贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 之前一直想写一个贪吃蛇小游戏,上个周末终于有时间做了一个,现在和大家分享。 界面 界面比较简单,一个按钮...
    99+
    2024-04-02
  • Java+JFrame实现贪吃蛇小游戏
    分享一个Java贪吃蛇小游戏,主要用到的是Java的JFrame,适合初学者。 首先创建一个合适大小的窗口,我这里是900*720 package com.lzijin;     ...
    99+
    2024-04-02
  • 怎么用html5实现贪吃蛇游戏
    这篇文章主要讲解了“怎么用html5实现贪吃蛇游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用html5实现贪吃蛇游戏”吧! ...
    99+
    2024-04-02
  • 怎么用C++实现贪吃蛇游戏
    这篇文章给大家分享的是有关怎么用C++实现贪吃蛇游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1976年,Gremlin平台推出了一款经典街机游戏Blockade。游戏中,两名玩家分别控制一个角色在屏幕上移动...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作