Pygame中获取键盘按键的方法

这篇具有很好参考价值的文章主要介绍了Pygame中获取键盘按键的方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 事件与队列

在Pygame中,将用户对游戏的操作叫做“事件”。键盘按键是一种事件,鼠标点击和游戏手柄的输入也是一种事件。在Pygame的子模块locals中,对这些事件进行了定义。当用户通过键盘、鼠标或者游戏手柄对游戏进行操作后,产生的这些事件都会被放在队列中。

2 获取键盘按键的基本原理

在Pygame中获取按键的基本原理就是从队列中取出这些事件,如果是键盘事件,则继续判断用户按下的是哪个键,根据不同的按键进行不同的处理。

3 代码实现

3.1 模块导入

需要导入Pygame模块以及Pygame模块下的locals子模块,代码如下所示:

import pygame
from pygame.locals import *

3.2 从队列中取出事件

从队列中取出事件的代码如下所示:

while True:
   for event in pygame.event.get():

其中,while True语句表示在游戏运行过程当中,能够不断地获取用户产生的事件;pygame.event.get()函数的作用是从队列中取出所有的事件,并将其保存到变量event中。

3.3 判断是否是键盘事件

在while循环中,对获取到的事件event进行判断,代码如下所示:

if event.type == KEYUP:

其中,event.type表示事件的类型,KEYUP在pygame.locals中定义,表示键盘中的某个键被按下。

3.4 根据不同的按键进行不同的处理

当判断出是键盘按键事件后,接下来判断用户按下的是键盘中的哪个按键,根据不同的按键进行不同的处理。我们要实现的功能是用户按下按键中的数字1键,则在屏幕上显示数字1;按下的是数字2键,则显示数字2,以此类推。代码如下所示:

if  event.key == pygame.K_1:
   number = '1'
elif event.key == pygame.K_2:
   number = '2'
elif event.key == pygame.K_3:
   number = '3'
elif event.key == pygame.K_4:
number = '4'

其中,event.key表示按键对应的值,pygame.K_1到pygame_K_4分别表示数字1键到数字4键对应的值。变量number是要显示的内容。

3.4 创建屏幕和要显示的内容

请参考《Pygame显示文字》。

4 完整代码

在Pygame中获取键盘输入的完整代码如下所示:i

import pygame
from pygame.locals import *
import sys

pygame.init()
screen = pygame.display.set_mode((600,500))
font = pygame.font.Font(None, 100)
number = '0'

while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            sys.exit()
        elif event.type == KEYUP:
            if event.key == pygame.K_ESCAPE:
                sys.exit()
            elif event.key == pygame.K_1:
                number = '1'
            elif event.key == pygame.K_2:
                number = '2'
            elif event.key == pygame.K_3:
                number = '3'
            elif event.key == pygame.K_4:
                number = '4'
            elif event.key == pygame.K_RETURN:
                number = 'RETURN'

    screen.fill((0,0,200))
    imgText = font.render(number, True, (255,255,255))
    screen.blit(imgText, (300, 200))
    pygame.display.update()

运行该代码后,当按下1~4这四个数字键,在屏幕中就会显示相应的数字,如图1所示。

pygame的按键,Pygame入门,pygame,键盘输入,事件与队列,event.type,event.key

图1 显示按键对应的数字文章来源地址https://www.toymoban.com/news/detail-610567.html

到了这里,关于Pygame中获取键盘按键的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于 pygame中,检测按键按下

    1.  按键按下,不弹起状态, 只进行一次判定 pgzer键按下事件处理程序只能识别按下一次键(直到释放),但如果按键保持不变,则不支持重复按键事件。 如果想要,按下按键,不停的重复进行检测,需要用 on_key_down中进行一个变量控制: 该事件仅触发一次,即按下该键时。您

    2024年02月11日
    浏览(29)
  • 键盘按键切换电脑显示屏的输入源的方法

    一、查看显示屏的输入源 如上图电脑显示屏可以选择两个输入源,接下来需要下载两款软件来实现键盘切换输入源。 二、下载必需软件 1.下载ControlMyMonitor:Download ControlMyMonitor 页面网址:http://www.nirsoft.net/utils/control_my_monitor.html 2.下载AutoHotKey或者WinHotKey的快捷设置软件 Auto

    2024年02月09日
    浏览(74)
  • Pygame第六课:事件

    目录 一、获取读取事件 1.1 获取事件 1.2 读取事件 二、判断反应 三、各个事件精讲 3.1 键盘事件 3.1.1 按下键盘 3.1.2 释放键盘 3.1.3 各个常用按键事件对照表 3.2 鼠标事件 3.2.1 获取事件 3.2.2 精确哪一个按键(左键或右键) 3.2.3 获取鼠标位置 3.3 pygame.QUIT事件 3.3.1 什么是

    2024年02月04日
    浏览(30)
  • pygame学习(三)——支持多种类型的事件

    大家好!我是码银🥰 欢迎关注🥰: CSDN:码银 公众号:码银学编程 为了保证程序的持续刷新、保持打开的状态,我们会创建一个无限循环,通常使用的是while语句, while True:只要while条件保持为真,while语句块中的代码就会重复地执行。 在游戏或图形应用程序中,事件处理

    2024年01月17日
    浏览(27)
  • 【pygame】创建输入框和按钮

    pygame里面并没有封装好的按钮和输入框, 以下是我亲测有效且非常易上手的代码 生成输入框 创建 draw.py 文件如下 为了测试以上代码,创建 main.py 如下: 效果如下: 生成按钮 创建 Button.py 为了使用这个类,创建 main.py 如下:

    2024年02月11日
    浏览(38)
  • 【Python】【进阶篇】八、Pygame的Event事件模块

    事件(Event)是 Pygame 的重要模块之一,它是构建整个游戏程序的核心,比如常用的鼠标点击、键盘敲击、游戏窗口移动、调整窗口大小、触发特定的情节、退出游戏等,这些都可以看做是“事件”。 Pygame 定义了一个专门用来处理事件的结构,即事件队列,该结构遵循遵循队

    2024年02月11日
    浏览(29)
  • pygame获取位置与形状

    例如:获取窗口的形状、位置 get_rect() 是对游戏中的任意对象的形状与位置进行封装。方便调用者使用。 get_rect()返回的实例对象会有很多属性供调用者操作。 例如:.center 获取的是 get_rect()的实例对象的中心点位置坐标。

    2024年02月17日
    浏览(28)
  • Linux下查看输入设备、获取输入事件的详细方法

    /dev/input/目录下的事件都是在驱动中调用input_register_device(struct input_dev *dev)产生的。笔者的/dev/input/目录中的文件如下: 每个event代表一个事件。那么如何知道每个事件分别与哪个设备对应?这需要借助于/proc/bus了。 /proc/bus/input/devices存放了与event对应的相关设备信息。笔者电

    2024年02月15日
    浏览(28)
  • 【pygame入门】pygame游戏实例入门级教程,如有不懂欢迎随时补充留言。

    pycharm+anconda3; 第三方库: pygame;(从标题看这句略显多余) 方法一:直接在pycharm里面安装。 files-seting-project-python Interpreter 在左侧界面的最左侧边栏上面有个加号,点击后在弹出页面搜索需要的第三方库,然后直接安装。 方法二:pip安装。 因为用的是anconda所以需要在终端里面

    2024年02月04日
    浏览(33)
  • 键盘按键事件 通过键盘上下左右按键移动界面上图标

    #main.c文件 #include “keyevent.h” #include int main(int argc, char *argv[]) { QApplication a(argc, argv); KeyEvent w; w.show(); } #include “keyevent.h”//头文件 #ifndef KEYEVENT_H #define KEYEVENT_H #include #include #include class KeyEvent : public QWidget { Q_OBJECT public: KeyEvent(QWidget *parent = 0); ~KeyEvent(); void drawPix(); void keyPre

    2024年02月09日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包