python - 恒定的键输入可以不断地移动 Sprite 吗?

标签 python sprite pygame game-engine

如果我想在 pygame 中根据按键输入移动 Sprite ,是否可以编写代码,以便如果我按住某个键, Sprite 将继续朝那个方向移动,直到我松开按键?我已经试过了,要么程序崩溃了,要么我必须反复点击按键才能将 Sprite 移动到预期的方向。

最佳答案

OP 需要按键状态轮询,而不是 KEYDOWN 事件。

此示例显示同时使用键事件和键轮询。您将一个用于“按下按键”,另一个用于“按住时”。

import pygame
from pygame.locals import *

done = False    
player.pos = Rect(0,0,10,10)

while not done:
    for event in pygame.event.get():
        # any other key event input
        if event.type == QUIT:
            done = True        
        elif event.type == KEYDOWN:
            if event.key == K_ESC:
                done = True

    # get key current state
    keys = pygame.key.get_pressed()
    if keys[K_LEFT]:
        player.pos.left -= 10
    if keys[K_RIGHT]:
        player.pos.left += 10
    if keys[K_UP]:
        player.pos.top -= 10
    if keys[K_DOWN]:
        player.pos.left += 10
    if keys[K_SPACE]: 
        print 'firing gun'

关于python - 恒定的键输入可以不断地移动 Sprite 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13205629/

相关文章:

python - 如果我通过我的电脑启动它,我的 heroku 音乐机器人工作正常,但是当我通过 heroku 运行它时它不起作用

python - Django 自定义表单字段初始数据

html - Sprite 图像未在 css 中裁剪

c# - Unity3D C# - 在结构/类中存储 Sprite ?

Python time.sleep() 问题?

python - 从 Python 子字典访问值

rotation - 如何在 Unity 4.3 中旋转 Sprite ?

python - pygame.font.SysFont() 在 macOS 上大约需要 5 秒

python - 当敌人出现时 Pygame 崩溃

python - 是否可以使用 FB Prophet 进行多元多步预测?