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

如何使鼠标按钮向下只检测左键点击?[副本]

裴展
2023-03-14

MOUSEBUTTONDOWN检测左,右和鼠标轮事件。我想让它只检测左点击。

源代码:

import pygame, sys, time
from pygame.locals import *
from millify import millify,prettify

pygame.mixer.init()
pygame.init()
pygame.mixer.music.load("soundtrack.wav")
WHITE = 255,255,255
font = pygame.font.SysFont(None, 44)
cpsecond = open("clickpersecond.txt", "r+")
cps = int(cpsecond.read())
baltotal = open("totalbal.txt", "r+")
totalbal = int(baltotal.read())
totalbalM = prettify(totalbal, '.')
clock = pygame.time.Clock()
w = 800
h = 600
screen = pygame.display.set_mode((w,h))
pygame.display.set_caption('Tap Simulator')
Loop = True
background = pygame.image.load("Background.jpg")
egg = pygame.image.load("egg.png")
resized_egg = pygame.transform.scale(egg, (282, 352))
text = font.render(f'Your total clicks are {totalbalM}', True, WHITE)
pygame.mixer.music.play(-1,0.0)
while Loop: # main game loop
    for event in pygame.event.get():
        if event.type == QUIT:
            Loop = False


        if event.type == MOUSEBUTTONDOWN: #I want it to only detect left click
            egg_rect = resized_egg.get_rect(topleft = (260,150))
            if egg_rect.collidepoint(event.pos):
                totalbal += cps
                totalbalM = prettify(totalbal, '.')
                text = font.render(f'Your total clicks are {totalbalM}', True, WHITE)
                print("Your total clicks are", totalbalM, end="\r")

    #print(pygame.mouse.get_pos()) #to get mouse pos
    screen.blit(background, (0,0))
    screen.blit(text, (235,557))
    screen.blit(resized_egg, (260,150))
    pygame.display.flip()
    pygame.display.update()
    clock.tick(30)

with open("totalbal.txt", "w") as baltotal:
    baltotal.write(str(totalbal))
baltotal.close

pygame.quit()
sys.exit()

共有1个答案

江飞白
2023-03-14

pygame。事件为MOUSEBUTTONDOWN生成的Event()对象有两个属性,提供有关鼠标事件的信息pos是存储单击位置的元组<代码>按钮存储单击的按钮。对于鼠标左键、鼠标中键、鼠标右键、鼠标滚轮向上、鼠标滚轮向下,按钮属性的值分别为1、2、3、4、5。

因此,如果要检测左键单击,需要检查事件是否发生。按钮==1

while Loop: # main game loop
    for event in pygame.event.get():
        if event.type == QUIT:
            Loop = False


        if event.type == MOUSEBUTTONDOWN: #I want it to only detect left click
   
            if event.button == 1: # 1 == left 

                egg_rect = resized_egg.get_rect(topleft = (260,150))
                if egg_rect.collidepoint(event.pos):
                    totalbal += cps
                    totalbalM = prettify(totalbal, '.')
                    text = font.render(f'Your total clicks are {totalbalM}', True, WHITE)
                    print("Your total clicks are", totalbalM, end="\r")

    # [...]
 类似资料:
  • 从pygame的api来看,它有: 但是没有办法区分右点击和左点击?

  • 我想知道如何编写代码来检测鼠标点击精灵。例如:

  • 我正在用MCP(Mod Coder Pack)制作我自己的Minecraft客户端。 但我不知道如何才能检测例如在更新方法中,如果鼠标按钮被按下,以及哪个。 Im使用MCP 9.10(Minecraft 1.8) 我在谷歌也在这个平台上搜索,但我什么也没找到。 我希望你们中有人能帮助我。

  • 问题内容: 我正在学习Pygame制作带有Python的游戏。但是,我遇到了一个问题。我正在尝试检测播放器当前何时单击屏幕,但是我的代码无法正常工作。我的代码实际上是搞砸了,还是我正在使用的在线Pygame编译器? 当我运行此代码时,输​​出控制台在每秒几千次内向文本“您正在单击”发送垃圾邮件。即使我没有单击屏幕,它仍然会显示此信息。即使我的鼠标是不是 在 屏幕上。相同的文字。一遍又一遍。Pyga

  • 问题内容: 有没有一种方法可以检测JavaScript中的鼠标按钮当前是否处于按下状态? 我知道“ mousedown”事件,但这不是我所需要的。按下鼠标按钮后的一段时间,我希望能够检测它是否仍被按下。 这可能吗? 问题答案: 关于Pax的解决方案:如果用户有意或无意地单击了多个按钮,则该按钮将不起作用。不要问我我怎么知道:-(。 正确的代码应如下所示: 通过这样的测试: 如果您想知道按下了什么按

  • 问题内容: 如何使用jQuery获取单击的鼠标按钮? 这是由鼠标右键和鼠标左键触发的,能捕捉鼠标右键的方式是什么?如果以下内容存在,我将很高兴: 问题答案: 从jQuery 1.1.3版开始,规范化了,因此您不必担心浏览器兼容性问题。有关文档 分别为鼠标左键,鼠标中键和鼠标右键提供1、2或3,因此: