当前位置: 首页 > 知识库问答 >
问题:

如何将键盘输入转换为函数以减少混乱

龚志
2023-03-14

这是一个仅用于组织目的的问题,但在pygame中,是否可以将键盘输入放入函数中。我正在使用pycharm,从pycharm我正在使用pygame。代码

 if event.type == pygame.KEYDOWN:
        print("Press")
        if event.key == pygame.K_LEFT:
            HomuraX_change = -0.5
        if event.key == pygame.K_RIGHT:
            HomuraX_change = 0.5
    if event.type == pygame.KEYUP:
        if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
            HomuraX_change = 0

在将其放入while循环之前,我尝试在函数中使用它。但出于某种原因,这不起作用。

我把它放在一个函数中,比如

def movement():
    if event.type == pygame.KEYDOWN:
       print("Press")
       if event.key == pygame.K_LEFT:
           HomuraX_change = -0.5
       if event.key == pygame.K_RIGHT:
           HomuraX_change = 0.5
   if event.type == pygame.KEYUP:
           if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
           HomuraX_change = 0

我把它放在一个while循环中,用于我的角色移动。在pygame的终端中,第二行的“打印”正在运行,这表明它在pycharm中工作,但是charachter没有移动。任何帮助都将不胜感激!!

共有1个答案

楚志强
2023-03-14

您需要将事件作为参数传递给函数。变量HomuraX_change需要声明global

def movement(event):
    global HomuraX_change 
    
    if event.type == pygame.KEYDOWN:
        print("Press")
        if event.key == pygame.K_LEFT:
            HomuraX_change = -0.5
        if event.key == pygame.K_RIGHT:
            HomuraX_change = 0.5
    if event.type == pygame.KEYUP:
        if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
            HomuraX_change = 0
run = True
while run:
    clock.tick(60)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

        movement(event)

    # [...]
 类似资料:
  • 有没有办法做到这一点? 我有一个角色,说“/”,我想得到这个的键盘组合。 对于德语布局,“/”将是Shift7。

  • 问题内容: Python中如何将输入数据转换为数字? 问题答案: Python 2.x 有两个函数用于获取用户输入,分别称为和。它们之间的区别是,不评估数据并以字符串形式原样返回。但是,将对你输入的内容进行评估,评估结果将返回。例如, 5 + 17评估数据,结果为22。当它对表达式求值时5 + 17,它将检测到你要添加两个数字,因此结果也将是同一int类型。因此,类型转换是免费完成的,并22作为的

  • 问题内容: 我是JAVA的新手,我正在尝试将JTextField的输入转换为整数,我尝试了很多选项,但是没有任何作用,蚀总是给我一个错误,并且这些错误对我来说没有意义。 导入java.awt.Graphics; 导入java.awt.Color; 问题答案: 代替: 试试这个: 您不能解析为,但是 可以解析 其包含的 值 -文本。

  • 问题内容: 我有一个类似下面的表单,该表单发布到contacts.php,用户可以使用jquery动态添加更多表单。 如果我用下面的代码在php中回显它们 我会得到这样的东西: 名称1名称2名称3电子邮件1电子邮件2电子邮件3 我怎样才能把这些数组变成下面的代码 所以我的输出是这样的: 名称为 name1 ,电子邮件为 email1 ,谢谢 。名称为 name2 ,电子邮件为 email2 ,谢谢

  • 假设我有以下地图: 我想根据以上内容获得。我目前的解决方案似乎太长太可怕了。 一定有更好的办法,不是吗?

  • 如何从用户输入一个数字,拆分它的数字,并分别使用每个数字 例如,如果用户输入“4568”,则代码应将4568拆分为4,5,6,8