【问题标题】:pygame - link an object to mouse eventpygame - 将对象链接到鼠标事件
【发布时间】:2018-01-22 05:14:42
【问题描述】:

我正在尝试使用 pygame 为 Android 开发游戏。 这将是一个平台游戏。要移动主要角色,我会让游戏等待鼠标事件(如 pygame.MOUSEBUTTONDOWN)。

为了在移动设备上执行此操作,我想创建一个带有箭头键的游戏手柄图形表示,以显示在屏幕的左下角。 现在,当用户触摸其中一个箭头时,应该触发 MOUSEBUTTONDOWN 事件并且字符应该相应地移动。

我的问题是:由于“joypad”对象只是一个平局,我如何使用 pygame 将它链接到事件? 有没有办法这样做?我应该使用手柄方向键的像素坐标还是有更好的选择?

【问题讨论】:

    标签: android python pygame mouseevent mouse


    【解决方案1】:

    据我所知这是不可能的。

    在处理输入时,鼠标输入和触摸输入要分开处理。

    所以回答你最后列出的 2 个问题:

    • 据我所知,没有办法实现此功能。

    • 您可以使用箭头的像素坐标。但是,您可以为此使用Rects 并使用collidepoint 方法测试鼠标输入/触摸输入的位置是否在箭头按钮Rect

    您可以通过以下方式实现:

    arrow_left.collidepoint(mouse_x, mouse_y)

    希望这个回答对你有所帮助!

    【讨论】:

    • 谢谢,我想像你一样用“插槽/触发器”的角度来处理 pygame 的对象是不可能的。将测试您的建议。无论如何,鼠标和触摸输入不是都用鼠标事件处理的吗?我推断所以只是看this repo中的代码...
    • 确实,该仓库中的代码确实对它们进行了相同的处理。我知道 LibGDX 对待它们是一样的,我怀疑大多数游戏开发库都这样做。
    • 但是,据我所知,pygame 本身并不能在 Android 上运行。因此,如果您要使用在 Android 和桌面上运行的 pygame 制作游戏,那么我认为您基本上会编写两个版本的游戏。一种是用于桌面的常规 pygame 库,另一种是使用外部 API 使其在 Android 上运行。但我对这些东西了解多少?我要说的是pygame没有触摸支持¯_(ツ)_/¯
    • 很高兴听到我能提供帮助!感谢您发布您的问题;D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-26
    • 2018-08-08
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 2022-01-25
    相关资源
    最近更新 更多