【问题标题】:How do you create a button from the color in an image file and position of the mouse?如何根据图像文件中的颜色和鼠标位置创建按钮?
【发布时间】:2019-11-22 18:22:00
【问题描述】:

所以我的意图是创建一个按钮,玩家单击开始颜色开始,然后将鼠标移动到结束颜色。这是一个回避游戏,您可以在其中避开不在路径上的颜色,而不是开始或结束颜色。

我正在尝试将鼠标悬停在开始颜色(绿色)上并单击它以开始游戏。我通过设置光标的位置来测试它,但这似乎不起作用。

我尝试了几种不同的方法来获取颜色。包括绘制一个完整的额外按钮,但我无法将它放在我想要的位置。这也不是我真正需要的。

到目前为止,这是我的代码。我缺少一个允许光标注册其下方颜色的功能。

目前,运行游戏时它不会崩溃,但它不会记录光标下方的颜色以及单击它时会发生什么。

for event in pygame.event.get():
    if mousepressed:
    color = (102, 255, 102)
    screen.set_at(pygame.mouse.get_pos(), color)
    if color and event.type == pygame.MOUSEBUTTONDOWN:
       pygame.mouse.set_pos(102, 255)
    else:
    if not color and event.type == pygame.MOUSEBUTTONDOWN:
        pygame.mouse.set_pos(100,100)

感谢您的帮助!真的很感激。

【问题讨论】:

  • 嗨,Ariel,欢迎来到 Stack Overflow。为了帮助其他人回答您的问题,请您明确说明您提交的代码示例有什么问题。
  • 您好 Cyber​​Jacob,我缺少一个允许光标记录其下方颜色的函数。目前,运行游戏时它不会崩溃,但它不会记录光标下方的颜色以及单击它时会发生什么。

标签: python pygame


【解决方案1】:

pygame.Surface中某个位置的像素颜色可以通过.get_at()得到。将此方法与与显示器关联的 Surface 对象一起使用 (screen):

color = screen.get_at(pygame.mouse.get_pos())

.set_at() 更改 Surface 上指定位置的像素颜色。 在此上下文中,set_at 表示在 Surface 上的某个位置设置颜色,get_at 表示从 Surface 的某个位置获取颜色。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    • 2018-04-16
    • 1970-01-01
    相关资源
    最近更新 更多