您如何使用 kivy 检查键盘事件?

How do you check for keyboard events with kivy?(您如何使用 kivy 检查键盘事件?)

本文介绍了您如何使用 kivy 检查键盘事件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以,不久前,我开始自学 kivy.我从主要的 kivy 网站开始,浏览了它的 pong 制作教程,完成后我决定尝试给它关键输入.我似乎找不到任何关于 kivy 键输入的指南!任何人都知道某种教程或可以提供一些易于理解的代码?我确实在 kivy 的示例文件夹中查看了键盘侦听器,但如果我应该使用它,我不太确定如何使用它.

So, awhile ago, I started teaching myself kivy. I started with the main kivy website and went through its pong making tutorial and upon finishing that I decided to try and give it key input. I just can't seem to find any kind of guide to key input with kivy! Anyone know some kind of tutorial or can provide some easy to understand code? I did look at the Keyboard Listener in the examples folder of kivy, but I'm not quite sure how to use that if I'm supposed to.

感谢您的帮助.

推荐答案

我猜你在问如何用键盘控制桨.我假设您的计算机上运行了最终的乒乓球代码(如果没有,您可以在 本节).

I guess you are asking how to control the paddles with the keyboard. I assume you have the final ping pong codes running on your computer (If not, you can find them at the end of this section).

1 - 在 main.py 中导入 Window 类:

1 - In the main.py import the Window class:

from kivy.core.window import Window

2 - 重新定义 PongGame 类的开头,使其如下所示:

2 - Redefine the beginning of the PongGame class so it looks like the following:

class PongGame(Widget):
    ball = ObjectProperty(None)
    player1 = ObjectProperty(None)
    player2 = ObjectProperty(None)

    def __init__(self, **kwargs):
        super(PongGame, self).__init__(**kwargs)
        self._keyboard = Window.request_keyboard(self._keyboard_closed, self)
        self._keyboard.bind(on_key_down=self._on_keyboard_down)

    def _keyboard_closed(self):
        self._keyboard.unbind(on_key_down=self._on_keyboard_down)
        self._keyboard = None

    def _on_keyboard_down(self, keyboard, keycode, text, modifiers):
        if keycode[1] == 'w':
            self.player1.center_y += 10
        elif keycode[1] == 's':
            self.player1.center_y -= 10
        elif keycode[1] == 'up':
            self.player2.center_y += 10
        elif keycode[1] == 'down':
            self.player2.center_y -= 10
        return True

瞧!按 ws 为左桨,按 updown 为右桨.

Voilà! Press w and s for the left paddle and up and down for the right paddle.

这篇关于您如何使用 kivy 检查键盘事件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:您如何使用 kivy 检查键盘事件?