如何只用左、右两个键控制蛇

2023-11-30

目前,我正在使用所有四个键来控制蛇左、右、上、下。我想知道如何只使用左右键来移动蛇。

                    if event.key == pygame.K_LEFT:
                        snake.direction = 2
                    elif event.key == pygame.K_RIGHT:
                        snake.direction = 3
                    elif event.key == pygame.K_UP:
                        snake.direction = 0
                    elif event.key == pygame.K_DOWN:
                        snake.direction = 1
    def move(self):
        if self.direction is 0:
            self.dy = -self.block
            self.dx = 0
        if self.direction is 1:
            self.dy = self.block
            self.dx = 0
        if self.direction is 2:
            self.dy = 0
            self.dx = -self.block
        if self.direction is 3:
            self.dy = 0
            self.dx = self.block
        self.x += self.dx
        self.y += self.dy

谁能指导我该怎么做?


                if event.key == pygame.K_LEFT:
                    if snake.direction == 0
                        snake.direction = 2
                    elif snake.direction == 2
                        snake.direction = 1
                    elif snake.direction == 1
                        snake.direction = 3
                    elif snake.direction == 3
                        snake.direction = 0
                elif event.key == pygame.K_RIGHT:
                    if snake.direction == 0
                        snake.direction = 3
                    elif snake.direction == 3
                        snake.direction = 1
                    elif snake.direction == 1
                        snake.direction = 2
                    elif snake.direction == 2
                        snake.direction = 0
def move(self):
    if self.direction is 0:
        self.dy = -self.block
        self.dx = 0
    if self.direction is 1:
        self.dy = self.block
        self.dx = 0
    if self.direction is 2:
        self.dy = 0
        self.dx = -self.block
    if self.direction is 3:
        self.dy = 0
        self.dx = self.block
    self.x += self.dx
    self.y += self.dy

这应该会根据蛇之前行进的方向来旋转蛇。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何只用左、右两个键控制蛇 的相关文章

  • 检测骰子的上侧

    是否可以检测骰子的上面 虽然从顶部看这将是一项简单的任务 但从许多角度来看 可以看到多个侧面 Here is an example of a dice feel free to take your own pictures 您通常想知道自己
  • Python 3.6 DateTime Strptime 返回错误,而 Python 3.7 运行良好

    我刚刚为日期数据创建了一个数据类型 它返回一个datetime datetime object 这是代码 import datetime class Date def new cls dateTime args kwargs return
  • 如何使用 .pth 文件添加 Python 导入路径

    如果我将 pth 文件放入 site packages 中 则会给出一个ImportError 我不知道如何通过创建 pth 文件来导入 指在Python中导入 https stackoverflow com questions 69728
  • 如何使用 Twython 将 oauth_callback 值传递给 oauth/request_token

    Twitter 最近刚刚强制执行以下规定 1 您必须通过oauth callbackoauth request token 的值 这不是可选的 即使您已经在 dev twitter com 上设置了一个 如果您正在执行带外 OAuth 请通
  • Colab 的使用限制持续多久?

    当我对同一帐户的两个笔记本同时使用两个 GPU 约半小时后 Colab 已 12 小时未运行 此消息不断弹出 由于 Colab 中的使用限制 您当前无法连接到 GPU 自从我上次使用 colab 以来已经过去了大约两个小时 但该消息仍然弹出
  • Django 说“id 可能不为 NULL”,但为什么会这样呢?

    我今天要疯了 我只是尝试插入一条新记录 但它返回了 post blogpost id 可能不为 NULL 错误 这是我的模型 class BlogPost models Model title models CharField max le
  • 从 Spark 数据帧中过滤大量 ID

    我有一个大型数据框 其格式类似于 ID Cat date 12 A 201602 14 B 201601 19 A 201608 12 F 201605 11 G 201603 我需要根据大约 500 万个 Is 的列表来过滤行 最直接的方
  • 如何解决CDK CLI版本不匹配的问题

    我收到以下错误 此 CDK CLI 与您的应用程序使用的 CDK 库不兼容 请将CLI升级到最新版本 云程序集架构版本不匹配 支持的最大架构版本为 8 0 0 但发现为 9 0 0 发出后cdk diff命令 我确实跑了npm instal
  • Scapy:如何将新层(802.1q)插入现有数据包?

    我有一个数据包转储 想要将 VLAN 标记 802 1q 标头 注入到数据包中 怎么做 为了找到答案 我查看了Scapy 插入新层和记录问题 https stackoverflow com q 17259592 1381638 这确实很有帮
  • python lxml 使用iterparse编辑并输出xml

    我已经在 lxml 库上摆弄了一段时间了 也许我没有正确理解它 或者我错过了一些东西 但我似乎无法弄清楚在捕获某个 xpath 后如何编辑文件并且然后能够在逐个元素解析时将其写回到 xml 中 假设我们有这个 xml 作为示例
  • 将带有 md5 消息摘要和 DESede/CBC/PKCS5Padding 的 3DES 加密的 java 代码转换为 python

    我有这个工作java代码 它使用3DES加密对密码进行加密 import java security MessageDigest import java util Arrays import java util Base64 import
  • 如何在自定义 django 命令中抽象出命令代码

    我正在我的应用程序下编写自定义 django 命令management commands目录 目前我在该目录中有 6 个不同的文件 每个文件都有不同的命令来解决独特的需求 然而 有一些实用程序是它们所共有的 抽象出这些公共代码的最佳方法是什
  • 获取 python 模块的 2 个独立实例

    我正在与以非 OO 方式编写的 python 2 x API 进行交互 它使用模块全局范围来处理一些内部状态驱动的东西 在它不再是单例的情况下需要它 并且修改原始代码 不是我们的 不是一个选择 如果不使用单独解释器的子进程运行 有什么方法可
  • Django:显示管理员验证错误的自定义错误消息

    我正在使用 Django 1 2 4 我有一个模型 其中有一个需要验证的字段 当验证失败时 我想向用户显示自定义错误消息 模型编辑是在管理界面中完成的 这就是我目前正在做的事情 def clean fields self exclude N
  • 如何输入可变的默认参数

    Python 中处理可变默认参数的方法是将它们设置为无 https stackoverflow com a 366430 5049813 例如 def foo bar None bar if bar is None else bar ret
  • Matplotlib:检查空图

    我有一个循环加载并绘制一些数据 如下所示 import os import numpy as np import matplotlib pyplot as plt for filename in filenames plt figure i
  • 访问影子 DOM 中的元素

    是否有可能查找 Shadow DOM 中的元素与蟒蛇硒 示例用例 我有这个input with type date
  • scikit-learn kmeans 聚类的初始质心

    如果我已经有一个可以作为初始质心的 numpy 数组 我该如何正确初始化 kmeans 算法 我正在使用 scikit learn Kmeans 类 这个帖子 具有选定初始中心的 k 均值 https stackoverflow com q
  • Pandas 2 个字段中唯一值的数量

    我正在尝试查找覆盖 2 个字段的唯一值的数量 例如 一个典型的例子是姓氏和名字 我有一个数据框 当我执行以下操作时 我只获取每列的唯一字段数 在本例中为 最后一个 和 第一个 不是复合体 df Last Name First Name nu
  • 如何从Python枚举类中获取所有值?

    我正在使用 Enum4 库创建一个枚举类 如下所示 class Color Enum RED 1 BLUE 2 我要打印 1 2 作为某处的列表 我怎样才能实现这个目标 您可以执行以下操作 e value for e in Color

随机推荐

  • JSF 2.0 获取当前会话中xhtml页面的内容

    我正在尝试使用 Flying Saucer 将 JSF 页面转换为 PDF ManagedBean SessionScoped public class ReportController public void createPDF Face
  • node.js Gmail API:获取内联/嵌入图像

    当抓取电子邮件时 我运行gmail users messages get 然后运行以下两个函数来处理payload function getBody message var encodedBody try if typeof message
  • 是否有 (return a) >>= b 的标准 Haskell 函数?

    我正在寻找一种方法来删除returns 来自以下函数 naming path getModificationTime path gt gt return formatTime defaultTimeLocale Y m d gt gt re
  • 登录后重定向页面的好处

    我看到很多网站 比如使用 vbulletin 的网站 都有 谢谢你 您已成功登录 点击此处继续 page 这样做有什么好处 优点吗 这和不重定向有什么区别 流量with重定向站点如下 此处的开启页面指的是 登录 区域的首页 login pa
  • QT C++ 错误:对“appprinter 的 vtable”的未定义引用

    问题 我有一个程序 其中包括打印机类 apppprinter 但是当尝试编译时我收到错误 appprinter cpp text 0x105 undefined reference to vtable for appprinter appp
  • Gem::Ext::BuildError: 错误: 无法构建 gem 本机扩展。在CenOS 6.5上

    安装Redmine 我试过了 bundle install without development test postgresql sqlite 但是错误 Gem Ext BuildError 错误 无法构建 gem 本机扩展 curren
  • MVC 3 - Html.EditorFor 似乎在 $.ajax 调用后缓存旧值

    这是以下问题的后续 MVC 3 ajax 响应似乎正在缓存部分视图的输出 那里有详细的问题描述 但是 我现在已经成功缩小了问题范围 这似乎与 Html EditorFor 帮助程序有关 因此出现了新问题 问题 我使用 ajax 将数据发布到
  • 如何从链接切换 Bootstrap 下拉菜单?

    我有一个工作正常的 Bootstrap 下拉菜单 我想做的是通过单击页面上其他位置的链接来触发菜单的打开 这是有道理的 因为菜单项中的内容等 文档页面说让链接执行类似的操作 dropdown toggle dropdown 或者可能 dro
  • 退出 Android 应用程序的最佳方法? [复制]

    这个问题在这里已经有答案了 我正在寻找一种通过代码退出我的 Android 应用程序的方法 是的 我知道 我不应该这样做 因为当你按下后退按钮时 android 会处理它 但我有一个定制的流程 迫使我实现这个 我已经搜索了一段时间 找到了多
  • 从另一个类调用 Main()

    我有一个名为TestMaze 我有另一个类名为DisplayHome其中有一个方法称为gameOver public void gameOver Console Write GAME OVER Console Write Play Agai
  • 为什么 Azure WebJob 中的时间触发器被触发两次?

    我正在使用带有 TimerTrigger 属性的 Azure WebJob 函数 每天早上在特定时间为某些用户排队发送电子邮件 根据阅读 我知道这应该表现为单例 并且在所有横向扩展实例中只触发一次 但是 用户报告收到两封电子邮件 并且日志记
  • MySQL 排序先于分组依据

    我需要找到每个作者的最新帖子 然后对结果进行分组 这样我就只能为每个作者找到一篇最新帖子 SELECT wp posts FROM wp posts WHERE wp posts post status publish AND wp pos
  • 如何为我的两个不同目标指定 #define 命令

    我有一个项目 我将其分为两个目标 原始的单目标项目使用了许多定义命令 但是我现在需要这些值根据我正在构建的目标而有所不同 这样做的正确方法是什么 我应该使用 AppDelegate 上声明的 NStrings 吗 或者我可以在设置 defi
  • ag 网格在单元格值更改时更改单元格颜色

    当网格中的单元格旧值 单元格新值时 我试图更改单元格颜色 我试过了 if e oldValue e newValue e colDef cellStyle function e return backgroundColor green 但是
  • 使用 Opencv 示例保存相机中的图像

    我用过这段代码来自iOS 示例 并尝试保存相机中的图像 问题是图像正在保存 但带有蓝色色调 如下所示 下面是我用来保存图像的代码 void processImagecv Mat image ALAssetsLibrary library A
  • Eclipse 插件 - 与文件扩展名和透视图关联的编辑器

    我正在开发两个 Eclipse 插件 我有下一个问题 我有两个管理相同文件的视角 我想在文件扩展名 编辑器 透视图之间建立关联 我的意思是 如果我在透视图 1 中打开文件扩展名 XXX 它会使用编辑器 A 但如果我在透视图 2 中打开相同的
  • 从“db 0”加载寄存器不会将 0 加载到 EAX 中?

    我已经把头撞在墙上一个多小时了 我不明白为什么下面的方法不起作用 如果我改变b db 1 to b db 0那么它应该打印 10 否则它应该打印 0 相反 程序总是打印 10 我一直在编写一个编写程序集的项目 这是失败的单元测试之一 我只是
  • 在 CONSOLE C# 中检测单个按键

    我是编码新手 决定从 C 开始 我决定编写一个简单的控制台程序来检测按键操作 如果只按下 Enter 键 它将显示数字 问题是你只要按住键 它就会继续显示数字 我应该在代码中添加什么以便程序仅检测SINGLE按下并忽略用户是否HOLDING
  • PHP中如何计算两个日期之间的天数? [复制]

    这个问题在这里已经有答案了 如果我有几个字符串 startDate and endDate被设置为 例如 2011 07 01 and 2011 07 17 指2011年7月1日和2011年7月17日 如何计算从开始日期到结束日期的天数 在
  • 如何只用左、右两个键控制蛇

    目前 我正在使用所有四个键来控制蛇左 右 上 下 我想知道如何只使用左右键来移动蛇 if event key pygame K LEFT snake direction 2 elif event key pygame K RIGHT sna