📜  检查键按下 pygame - Python (1)

📅  最后修改于: 2023-12-03 15:40:36.865000             🧑  作者: Mango

检查键按下 in Pygame - Python

编写Pygame游戏时,很有可能需要检测玩家何时按下某个键,以执行相应的操作。本文将重点介绍如何检测按键事件,并提供一个简单的示例程序,以演示如何使用Pygame检测玩家按下按键事件。

检测按键事件

Pygame中的按键事件由pygame.KEYDOWN和pygame.KEYUP事件触发。使用pygame.event.get()函数可获取当前事件队列中的事件,使用for循环遍历所有事件,通过判断事件类型和按下的键来检测按键事件。

import pygame
pygame.init()

gameDisplay = pygame.display.set_mode((800, 600))
pygame.display.set_caption('检测按键事件')

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            quit()
        
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_UP:
                print('玩家按下了向上方向键')
            if event.key == pygame.K_DOWN:
                print('玩家按下了向下方向键')
            if event.key == pygame.K_LEFT:
                print('玩家按下了向左方向键')
            if event.key == pygame.K_RIGHT:
                print('玩家按下了向右方向键')

以上代码对pygame.KEYDOWN事件的四个方向键进行了检测,如果玩家按下了其中的一个方向键,就会在Python的控制台中输出相应的消息。

示例程序

下面是一个示例程序,让玩家移动一个小球,即可演示如何在Pygame中检测按键事件。

import pygame
pygame.init()

gameDisplay = pygame.display.set_mode((800, 600))
pygame.display.set_caption('检测按键事件')

white = (255, 255, 255)
black = (0, 0, 0)

clock = pygame.time.Clock()

ballX = 400
ballY = 300

ballRadius = 10
ballSpeed = 5

while True:

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            quit()
        
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_UP:
                ballY -= ballSpeed
            if event.key == pygame.K_DOWN:
                ballY += ballSpeed
            if event.key == pygame.K_LEFT:
                ballX -= ballSpeed
            if event.key == pygame.K_RIGHT:
                ballX += ballSpeed

    gameDisplay.fill(white)
    pygame.draw.circle(gameDisplay, black, (ballX, ballY), ballRadius)
    pygame.display.update()

    clock.tick(60)

以上示例程序创建了一个黑色的小球,并让玩家通过按下方向键来移动它。其中,ballX和ballY分别代表小球的横坐标和纵坐标,ballRadius代表小球的半径,ballSpeed代表小球每次移动的距离。如果玩家按下上、下、左、右方向键,则分别改变ballY、ballY、ballX、ballX的值,从而实现小球的移动。

好了,现在你已经掌握了如何检测Pygame中的按键事件,快去尝试写一个自己的小游戏吧!