首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我在使用pygame的key.get_pressed功能时不能在屏幕上输入文本?

在使用pygame的key.get_pressed功能时,不能在屏幕上输入文本的原因是key.get_pressed函数只能检测到键盘上的按键是否被按下,而无法直接将按键对应的字符显示在屏幕上。

要在pygame中实现在屏幕上输入文本的功能,可以使用pygame的event模块来监听键盘事件,并将按键对应的字符添加到一个字符串变量中,然后将该字符串渲染到屏幕上。

以下是一个示例代码,演示如何在pygame中实现在屏幕上输入文本的功能:

代码语言:txt
复制
import pygame
from pygame.locals import *

pygame.init()

screen = pygame.display.set_mode((800, 600))
font = pygame.font.Font(None, 36)
text = ""

while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            exit()
        elif event.type == KEYDOWN:
            if event.key == K_BACKSPACE:
                text = text[:-1]
            elif event.key == K_RETURN:
                print("输入的文本为:", text)
                text = ""
            else:
                text += event.unicode

    screen.fill((255, 255, 255))
    rendered_text = font.render(text, True, (0, 0, 0))
    screen.blit(rendered_text, (10, 10))
    pygame.display.update()

在上述代码中,我们使用了pygame的event模块来监听键盘事件。当按下键盘上的按键时,根据按键的类型进行相应的处理:如果是退格键(K_BACKSPACE),则删除字符串变量text的最后一个字符;如果是回车键(K_RETURN),则打印出输入的文本并清空字符串变量text;其他情况下,将按键对应的字符添加到字符串变量text中。

然后,我们使用pygame的font模块创建一个字体对象,并在每次循环中将字符串text渲染为一个文本图像,然后将该图像绘制到屏幕上。

通过这种方式,我们可以在pygame中实现在屏幕上输入文本的功能。

关于pygame的更多信息和使用方法,你可以参考腾讯云的云游戏解决方案,该解决方案提供了基于云计算的游戏开发和运行环境,支持开发者在云端进行游戏开发和测试,具体信息请参考:腾讯云游戏解决方案

相关搜索:为什么我不能在react组件中突出显示屏幕上的文本?为什么我的pygame项目中的文本不能正确地显示在屏幕上?我的代码有什么问题吗?为什么在使用道具时,fill不能在我的svg上工作?当我在React中向输入标记写入文本时,为什么我的文本没有更改我对文本使用了边距,但是容器在屏幕上占用了很多空间,为什么容器在屏幕上占用了很多空间?为什么我的JSON在使用decode时不能在PHP脚本中解码?当我在弹出窗口中按下按钮时更改屏幕上的文本输入字段Python Kivy为什么我的其他视图在使用协调器布局后快捷栏显示时不上移?为什么我不能在html中使用text-align: center将文本类型的表单输入字段居中?为什么我的解析器无法在不崩溃的情况下将精灵绘制到屏幕上?为什么我的文本输入框的宽度与我在form/html中编写的Bootstrap网格的宽度不匹配?在输入一些文本时,我正在尝试在react-native中修复屏幕底部的选项卡栏为什么我在此网站上的移动菜单可以在浏览器上使用,但不能在实际的移动设备上使用?在swiftUI中首次出现在屏幕上时,我的视图为什么没有过渡当标准Image()正常工作时,为什么我的libgdx扩展Image()在屏幕上什么也没有显示?为什么在我的功能文件的后台部分之后,我得到了以下错误:"required(..)+ loop不匹配输入场景中的任何内容:“?为什么我的react-router不工作?URL在单击时更改,但在DOM上不显示为什么我的文本视图在设置文本时不会创建换行符,即使使用\n也是如此?为什么我的Flutter CustomPainter类在使用canvas..drawArc()函数和小于2*pi的sweepAngle时没有在屏幕上绘制任何内容?为什么当我在div中使用hover时,它也会悬停在我的文本旁边?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

❤️ 如何在 Pygame 中移动你的游戏角色 ❤️

现在,根据键盘事件(即键状态改变时发生的事件)更改播放器的 x 和 y 坐标。 blit(surface,surfacerect) 函数用于在屏幕上绘制图像。...# 启动 pygame 并授予使用 pygame 功能的权限 pygame.init() # 创建特定尺寸的显示面对象 window = pygame.display.set_mode((600,...False pygame.quit() quit() # 使用 key.get_pressed() 方法将按下的键存储在新变量中 key_pressed_is = pygame.key.get_pressed...import pygame from pygame.locals import * # 启动 pygame 并授予使用 pygame 功能的权限 pygame.init() # 创建特定尺寸的显示面对象...key.get_pressed() 方法将按下的键存储在新变量中 key_pressed_is = pygame.key.get_pressed() # 改变玩家坐标 if key_pressed_is

2.4K21
  • 手把手教你使用 Python 制作贪吃蛇游戏

    贪吃蛇游戏是有史以来最受欢迎的街机游戏之一。在这个游戏中,玩家的主要目标是在不撞墙或不撞墙的情况下抓住最大数量的水果。在学习 Python 或 Pygame 时,可以将创建蛇游戏视为一项挑战。...初始化蛇位置后,在定义的高度和宽度的任意位置随机初始化水果位置。 通过将方向设置为 RIGHT,我们确保每当用户运行程序/游戏时,蛇必须向右移动到屏幕上。...然后我们使用渲染来创建一个背景表面,每当我们的分数更新时,我们就会改变它。 为文本表面对象创建一个矩形对象(文本将在此处刷新) 然后,我们使用blit显示我们的分数 。...在第一行,我们创建了一个字体对象来显示乐谱。 然后我们创建文本表面来渲染乐谱。 之后,我们将设置文本在可播放区域中间的位置。 使用blit显示分数并通过使用 flip() 更新表面来更新分数。...= (window_x/2, window_y/4) # blit 将在屏幕上绘制文本 game_window.blit(game_over_surface, game_over_rect)

    1.7K30

    用Python编写一个打乒乓球小游戏

    下面让我分享一下我编写的十分简单的打乒乓球小游戏。 ? 首先要安装pygame库,如果你使用IDLE的话,那就更简单了!在命令提示符下输入pip install pygame ,联网即可下载!...pygame的网站是http://www.pygame.org,你可以在这里下载pygame,我这pygame版本号是1.9.3,使用python3.6编程。 ?...,乒乓球在屏幕内运动,因此我们将乒乓球的坐标设置为(x,y)设置初速度vx,vy,当乒乓球到达屏幕边缘的时候速度取反,也就是乒乓球到达左右两边缘的时候vx取反,上下边缘的时候vy取反。...',20) 接下来是设计一个函数,在游戏屏幕上打印文本,代码表示先把文本转换成一个位图然后打印在屏幕上,打印文本需要打印的具体坐标和文本颜色,字体等参数。...Scr.fill会用RGB值为(199,21,133)的颜色刷新屏幕,以后画圆写字都在这基础上,下一次循环后又刷新。因此在屏幕中乒乓球和乒乓板就会动态呈现出来。

    2.1K10

    使用 Python 和 Pygame 制作游戏:第六章到第八章

    return 游戏结束文本将一直显示在屏幕上,直到玩家按下键。...我们也可以在这里使用for循环,这样我们就不必输入所有这些pygame.draw.line()调用。 注意到调用所需的规律模式并使用循环是聪明的程序员的技巧,可以帮助我们节省大量的输入。...想象游戏世界是一个无限的二维空间。当然,这永远无法适应任何屏幕。我们只能在屏幕上绘制无限 2D 空间的一部分。我们称这一部分的区域为摄像机,因为就像我们的屏幕只是摄像机所看到的游戏世界的区域。...屏幕上将显示“游戏结束”文本(在gameOverSurf变量中的 Surface 对象上),显示的时间为GAMEOVERTIME常量中的秒数。...这个值也存储在math模块中的常量变量pi中(这就是为什么第 333 行使用变量math.pi),它在技术上是浮点值3.1415926535897931。

    59710

    使用 Python 和 Pygame 制作游戏:第一章到第五章

    在阅读本书之前,您不需要知道如何使用 Pygame 库。下一章是关于 Pygame 的所有主要特性和功能的简要教程。...本章包含五个小程序,演示了如何使用 Pygame 提供的不同功能。在最后一章中,您将使用这些功能来编写使用 Pygame 编写的 Python 完整游戏。...CLI 你可以使用 Python 的内置函数编写的 Python 程序只通过print()和input()函数处理文本。你的程序可以在屏幕上显示文本,并让用户从键盘输入文本。...这也让未来阅读你代码的程序员说,“如果我看到一个列表值,我知道它可能在程序的某个时刻被修改。否则,编写这段代码的程序员会使用元组。”...我们可以只调用makeText()而不是每次想在屏幕上制作文本时都进行所有这些调用。这节省了我们程序中需要输入的数量。

    1.4K10

    基于Python的飞机大战复现

    原文链接 二、游戏功能实现 (一)初始化设置 Pygame初始化 pygame.init():初始化Pygame库,这是使用Pygame进行游戏开发的第一步,它会初始化Pygame的各个模块,如显示、...背景绘制 screen.blit(background_image, (0, 0)):在屏幕上绘制背景图。...飞机绘制与位置更新 screen.blit(plane.image, plane.rect):在屏幕上绘制飞机。...检测子弹与敌机的碰撞,如果碰撞,移除敌机和子弹,增加分数。同时更新最高分显示。 得分与生命值显示 渲染得分文本和生命值文本,并在屏幕上绘制显示。...增加游戏暂停功能:在游戏过程中,玩家可以暂停游戏,以便在需要时休息或处理其他事情。 改善画面效果:可以进一步优化图片资源,添加动画效果(如飞机爆炸动画、敌机飞行动画等),提升游戏的视觉效果。

    8510

    如何使用 Pygame 创建文本输入框?

    由于 Pygame 建立在 SDL 之上,因此它为图形、声音和输入处理提供了一个独立于平台的接口。...在本教程结束时,我们将能够了解 Pygame 的工作原理。它包括制作视频游戏和图形的几个功能。在安装 Pygame 之前,应该在系统中安装 Python。...之后,我们按照字体和文本设置屏幕显示模式和标题,然后我们创建一个矩形并设置颜色参数。接下来,我们使用几个函数设置输入框的工作流程。...开发人员可以使用这个著名的库创建多个游戏。它提供了一个易于使用的界面,用于创建和操作图形。任何人都可以使用它在屏幕上绘制形状、图像和动画。您还可以使用它来创建视觉效果,例如粒子系统和滚动背景。...凭借其易于使用的界面和广泛的功能,Pygame是任何有兴趣使用Python创建游戏或多媒体应用程序的人的绝佳选择。

    53020

    一个Python游戏项目,助你玩乐中搞定Python

    1.项目概述 Python功能众多,你已尝试使用了几个,现在该大干一场了。 在本项目中,你将学习如何使用Pygame,这个扩展让你能够使用Python编写功能齐备的全屏街机游戏。...这只香蕉要躲开从天而降的16吨铅锤,尽力在防御战中活下来。我想将这个游戏命名为Squish比较合适。 注意 阅读本项目时,如果你想尝试编写自己的游戏,去做就是了。...另外,还将使用Group对象的方法draw在Surface上绘制Sprite对象。 4.4 pygame.font 模块pygame.font将包含类Font。...字体对象可用于表示不同的字体,可用于将文本渲染为可在Pygame中作为普通图形使用的图像。...这两幅图像还应使用常见的图像文件格式,如GIF、PNG或JPEG。 注意 你可能还想提供一张启动屏幕(像游戏用户问候的第一个屏幕)图像。在这个项目中,我直接使用了表示铅锤的图像。

    1.9K10

    用Python和Pygame写游戏第1课

    我所翻译的这本书上的版本还是1.7.1的……所以如果有些过时的不合时宜的东西,千万不要客气请指出来! 若说为什么要介绍这么一个“过时”的东西,真正的知识是不会过时的,只有技术才会。...管理图像和屏幕 pygame.surfarray 管理点阵图像数据 pygame.time 管理时间和帧信息 pygame.transform 缩放和移动图像 有些模块可能在某些平台上不存在,...exit() 新的Hello World 学程序一开始我们总会写一个Hello world程序,但那只是在屏幕上写了两个字,现在我们来点更帅的!写好以后会是这样的效果: Python #!...注意:代码中的注释我使用的是中文,如果执行报错,可以直接删除。 游戏中我已经为每一行写了注释,另外如果打算学习,强烈建议自己动手输入一遍而不是复制粘贴!...标志位 功能 FULLSCREEN 创建一个全屏窗口 DOUBLEBUF 创建一个“双缓冲”窗口,建议在HWSURFACE或者OPENGL时使用 HWSURFACE 创建一个硬件加速的窗口,必须和

    10610

    关于“Python”的核心知识点整理大全38

    (msg) 首先,我们导入了模块pygame.font,它让Pygame能够将文本渲染到屏幕上。...实参None让Pygame使用默认字体,而48 指定了文本的字号。为让按钮在屏幕上居中,我们创建一个表示按钮的rect对象(见4),并将 其center属性设置为屏幕的center属性。...我们启用了反锯齿功能,并将文本的背景色设置为按钮的颜色 (如果没有指定背景色,Pygame将以透明背景的方式渲染文本)。...14.1.2 在屏幕上绘制按钮 我们将使用Button类来创建一个Play按钮。...无论玩家单击屏幕的什么地方,Pygame都将检测到一个MOUSEBUTTONDOWN事件(见1),但我 们只想让这个游戏在玩家用鼠标单击Play按钮时作出响应。

    15610

    自制街机游戏(1):初次实现

    Python功能众多,你已尝试使用了几个,现在该大干一场了。在本项目中,你将学习如何使用Pygame,这个扩展让你能够使用Python编写功能齐备的全屏街机游戏。...这只香蕉要躲开从天而降的16吨铅锤,尽力在防御战中活下来。我想将这个游戏命名为Squish比较合适。 ---- 注意 阅读本项目时,如果你想尝试编写自己的游戏,去做就是了。...另外,还将使用Group对象的方法draw在Surface上绘制Sprite对象。 2.4.pygame.font 模块pygame.font将包含类Font。...字体对象可用于表示不同的字体,可用于将文本渲染为可在Pygame中作为普通图形使用的图像。...在这个项目中,我直接使用了表示铅锤的图像。 ---- 4.初次实现 使用诸如Pygame等新工具开发程序时,应让第一个原型尽可能简单,并将重点放在学习新工具的基本知识,而不是程序本身的细节上。

    2.6K20

    Pygame入门

    游戏的运行过程可以概括如下: 1.检查玩家输入(事件循环,event loop) 2.根据信息绘制屏幕上的元素 3.重复1、2步骤 Pygame 的作用 Pygame 能为你做什么?...绘制图像(以及播放声音) 检查玩家输入(内置函数input()会阻塞进程,对游戏来说是无用的) 提供有用的工具,如碰撞检测(collisions),文本、计时器。...我们需要初始化pygame,设置窗口。 然后在一个循环中,不断检查输入,更新显示。...就像是我们有一块黑板(display surface),可以在黑板上贴很多图片(surface)。 坐标系 注意,Pygame中的坐标系和高中的坐标系有些不同 Pygame中的原点在左上角。...,(300,50)) pygame.display.update() clock.tick(60) # 不超过60 fps 小结: 用到的函数: 功能 函数 初始化pygame pygame.init

    1.4K20

    Python游戏工具包---Pygame最常用的15个模块详解(附pdf版本)

    () — 设置当前显示模式的 OpenGL 属性值 pygame.display.get_active() — 当前显示界面显示在屏幕上时返回 True pygame.display.iconify...()当前显示界面显示在屏幕上时返回 True。...Pygame 没有提供直接的方式在一个现有的 Surface 对象上绘制文本,取而代之的方法是:使用 Font.render() 函数创建一个渲染了文本的图像(Surface 对象),然后将这个图像绘制到目标...由于取决于文本背景的类型和抗锯齿功能的使用,该函数将会返回不同类型的 Surface 对象。...优化:如果你已知文本最终将绘制在一个纯色的背景上,那么文本是抗锯齿的,你可以通过指定文本的背景色来提高性能(将文本背景色设置目标 Surface 对象的颜色)。

    16.6K56

    童年游戏大回顾:飞机大战

    在游戏里所向披靡的我(当年的我属实是有点东西的)不管多依依不舍,到“某一时刻”总会迅速地把游戏机收拾好,关上电视并用湿毛巾擦擦降温(我想起那天夕阳下的奔跑,那是我逝去的青春...)然后营造出认真学习的情景...拥有一部掌中宝游戏机就能成为班中的红人,曾经的我为了能玩上一把飞机大战,斥重金求同桌,给我的同桌买了一包价值5毛的辣条。 今天我站起来了,可以实现少年时梦想,飞机大战玩到爽~....设计思路: 游戏元素: 玩家飞机: 玩家控制的飞机,可以是简单的飞机形象,可以在屏幕上上下左右移动,也能够发射子弹。 敌机: 敌机会不断从屏幕上方出现,向下飞行,玩家需要躲避敌机的攻击。...设置玩家飞机的移动速度。 定义敌机类: 创建了一个名为Enemy的类来表示敌机。 每个敌机对象具有随机的初始位置和速度。 move()方法用于移动敌机,draw()方法用于在屏幕上绘制敌机。...功能实现 使用Python来实现飞机大战游,可以使用Pygame这样的游戏开发库来实现飞机大战游戏。

    47742

    【人工智障入门实战1】测试对象的设计:基于 pygame 实现 Amazing-brick 游戏

    但实际上,由于我没有使用已有物理引擎/游戏引擎,我是基于每一帧对游戏进行设计、并迭代画面的。...整体思路 如图,在游戏中需要绘制在屏幕上的,一共有三种实体: •玩家(黑色方块);•方块障碍物;•中间留有空隙的长条障碍物。...# 绘图时,就根据其 x_c, y_c 来将其绘制在屏幕上 obj.set_camera(x_c, y_c) return obj def move...(self, obj: Player): # 如果玩家此时在屏幕上的坐标将高于屏幕的 1/2 # 镜头上移 # 即不允许玩家跑到屏幕上半部分去...其基本原理:强化学习算法绪论•为了解决此问题,我构建的算法一:基于CNNs的算法构建•为了解决此问题,我构建的算法二:2帧输入的线性NN模型•为了解决此问题,我构建的算法三:输入速度的线性NN模型 欢迎

    67830

    Python 升级之路( Lv12 ) Pygame游戏开发基础

    它具有高度的可移植性,几乎可以在所有平台和操作系统上运行. Pygame 在优秀的 SDL 库之上添加了功能. 这使我们可以使用 python 语言创建功能齐全的游戏和多媒体程序....然后输入相对应软件进行下载 安装时可以指定版本 pip install pygame ==版本号 但需要注意, 锁安装的模块版本要和自己当前安装的Python版本进行匹配, 否则可能会下载失败...会为你选择合适的匹配你python 的版本 Pygame 框架中的模块 在 Pygame 框架中有很多模块,其中最常用模块的具体 说明下表所示 模块名 功能说明 pygame.display 访问显示设备...# 刷新屏幕 效果展示 字体处理 在 Pygame 模块中可以直接调用系统字体,或者可以直接使用 TTF 字体....在我们原有坐标系的基础上添加偏移量,再重新绘制,依次一张一张的循环绘制下去, 就会得到我们想要的物体移动的效果 Pygame 实现动画主要用到的方法如下表所示 方法名 说明 pygame.image.load

    1.5K10

    PyGame 英文打字游戏

    第三方介入:停停停,老子不想了解太多你的往事,赶紧的有话快说,有pi快放(自己模拟和自己对话,望谅解) 好,就不继续往下了,在回忆下去我都怕自己和看到这篇文章想起往事的人会感动的流泪(博主不要脸)...、pyinstaller、pygame 四级英文单词文本 开发工具Pycharm2019.1.3 3、模拟类图设计(非专业) 一开始我是用word去模拟设计(插入形状),设计第一个类图的时候我都感觉好慢...= ''] 本来想用正则去筛选解析的,试了一下由于不太会用,也不喜欢这种编程风格(重要是小编菜,望大神指点),就大概看了一下 四级英文单词文本整体结构和规律,一开始我从网上找的文本是不符合规律的,用notepad...1、首先字典是以键(key)值(value)对存储数据的,我好给我的数据取个别名(key值),增加代码的可读性,到后面随机生成单词精灵时我是用随机下标index加key值取数据,而不是self.words...3、英语是国际指定的官方语言(作为母语),也是世界上最广泛的第一语言,英语包含约49万词,外加技术名词约30万个,是词汇最多的语言,也是欧盟以及许多国际组织以及英联邦国家的官方语言,拥有世界第三位的母语使用者人数

    1.6K20

    Python之pygame学习绘制文字制作滚动文字(6)

    pygame绘制文字 ✕ 今天来学习绘制文本内容,毕竟游戏中还是需要文字对玩家提示一些有用的信息。 字体常用的不是很多,在pygame中大多用于提示文字,或者记录分数等事件。...可以使用dest参数定位绘图。Dest可以是表示源左上角的坐标对。Rect也可以作为目标传递,矩形的topleft角将用作blit的位置。目标矩形的大小不会影响blit。 也可以传递可选的区域矩形。...这表示要绘制的源Surface的较小部分。 也就是我们需要绘制的元素,需要绘制的位置输入进去,可以接受矩形区域的位置参数。 这里还演示了获取文本宽高,让文本在屏幕居中滚动的效果。...',pygame.font.get_default_font()) # 获取所有可用的字体 pprint.pprint(pygame.font.get_fonts()) # 在系统上找到特定的字体...在新Surface上绘制文本 # 显示内容、是否消除锯齿、字体颜色、背景颜色 text = a.render("测试字体",True,(255,0,0),(0,0,0)) #

    4K30
    领券