PyGame 如何获取键盘输入

PyGame 如何获取键盘输入

对于构建视频游戏和多媒体应用程序,Python用户经常使用Pygame库。任何游戏都必须包含用户输入,这是其中最重要的组成部分之一。对于许多游戏,来自键盘的用户输入是一个关键来源。

键盘输入是Pygame中描述捕获键盘输入并将其用于控制游戏元素的过程的术语。Python的”pygame.event”模块是Pygame提供的用于接收键盘输入的方便工具。当按下键盘上的某个键时,此模块的”pygame.KEYDOWN”事件将被触发。

在Pygame中获取键盘输入的算法

在Pygame中,您必须执行一些步骤来接收键盘输入。以下是一些建议,帮助您开始进行-

步骤1- 在继续之前,必须首先初始化Pygame:可以使用”pygame.init()”函数来完成此操作。此函数会初始化您的游戏所使用的每个Pygame模块。

  • 设置显示模式- 在初始化Pygame之后,必须设置显示模式。调用”pygame.display.set_mode()”函数可以实现此功能。这个函数产生的Surface对象作为创建的Pygame窗口的表示。

第一阶段是构建游戏循环,它是一个持续运行的循环,同时观察事件的发生。使用”pygame.event.get()”函数创建一个while循环将使您能够完成此操作。此方法返回自从上次调用以来的每个事件的列表。

  • 处理事件- 必须在游戏循环内处理”pygame.event.get()”函数返回的事件。如果列表中的任何事件是键盘事件,可以通过迭代遍历事件列表来确定这一点。

  • 处理键盘事件- 要处理在事件列表中看到的键盘事件,请查找被按下的键。可以使用事件对象的”event.type”属性来实现此操作。如果类型是”pygame.KEYDOWN”,则可以通过访问”event.key”属性获取按下的键。

更新游戏状态:处理键盘输入后,必须更新游戏的状态。这可以通过重新定位游戏元素、更新得分或执行与游戏相关的任何其他操作来完成。

更新显示:要完成该过程,请执行”pygame.display.update()”函数以更新显示。该函数会更新Pygame窗口的内容。

按照这些步骤,您可以使用键盘输入在Pygame中创建交互式游戏。

以获取Pygame中的键盘输入的方法

在这种方法中,我们将解释在使用Python pygame模块时,有时需要使用键盘输入来执行任务,例如将角色移动到特定方向。为了做到这一点,我们必须观察所有的事件。我们可以通过查看events.get()方法来看到Pygame如何跟踪发生的事件。

Pygame.event()分别在按下或释放键时排队pygame.KEYDOWN和pygame.KEYUP事件。

例如,如果我们想确定是否按下了一个键,我们将监视是否发生了任何pygame.KEYDOWN事件。结果,我们将得知是否按下了一个键。确定是否按下了一个键的代码可以表示如下 –

方法1:检测键是否被按下

# importing pygame module
import pygame

# importing sys module
import sys

# initialising pygame
pygame.init()

# creating display
display = pygame.display.set_mode((300, 300))

# creating a running loop
while True:

    # creating a loop to check events that
    # are occurring
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

        # checking if keydown event happened or not
        if event.type == pygame.KEYDOWN:

            # if keydown event happened
            # than printing a string to output
            print("A key has been pressed")

输出

A key has been pressed
A key has been pressed
A key has been pressed
A key has been pressed

运行此代码后,每次按下一个键时,终端上都会显示字符串”A key has been pressed”。

方法2:检测按下了哪个键

在第二种方法中,我们必须检查事件以确定按下了哪个键。这个pygame键与变量key相关。例如,我们将比较事件,如果字母”A”的pygame键是”K_a”。如果带有K和A的键相同,则按下了键”A”。

不同的键盘键和相关的pygame键如下所示:

创建一个代码,例如,确定键”A”或”J”或”P”或”M”是否被按下。验证代码如下:

# importing pygame module
import pygame

# importing sys module
import sys

# initialising pygame
pygame.init()

# creating display
display = pygame.display.set_mode((300, 300))

# creating a running loop
while True:

    # creating a loop to check events that
    # are occurring
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

        # checking if keydown event happened or not
        if event.type == pygame.KEYDOWN:

            # checking if key "A" was pressed
            if event.key == pygame.K_a:
               print("Key A has been pressed")

            # checking if key "J" was pressed
            if event.key == pygame.K_j:
               print("Key J has been pressed")

            # checking if key "P" was pressed
            if event.key == pygame.K_p:
               print("Key P has been pressed")

            # checking if key "M" was pressed
            if event.key == pygame.K_m:
               print("Key M has been pressed")

输出

key P has been pressed
key J has been pressed
key M has been pressed
key M has been pressed
key J has been pressed
key P has been pressed
key P has been pressed

当运行此代码并按下指定的键时,对应的字符串将打印在终端上。

结论

一旦录制完毕,您可以使用键盘输入来控制游戏方面。例如,您可以使用箭头键来移动,使用空格键来使玩家角色跳跃。使用Pygame中的“pygame.event”模块,在键盘上按下键时触发的“pygame.KEYDOWN”事件可以简单地获取键盘输入。通过记录键盘输入,您可以使您的游戏更具互动性和趣味性,为用户提供更好的体验。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程