私はpygameにボックスを持っていて、カーソルがボックスの中にあるときにマウスボタンを押すと、何かのテキストをコンソールに出力したいと思います。問題は、マウスボタンを押してボックスにドラッグすると、テキストを印刷したくないということです。ボックス内でカーソルが押され、押されずにドラッグされている場合、どのように真を返すことができますか?
私が試してみました:
if mousePos[0] >= 500 and mousePos[0] <= 530 and mousePos[1] >= 0 and mousePos[1] <= 100 and pygame.mouse.get_pressed()[0]:
scrollButtonColour = (25,25,25)
print(mousePos)
else:
scrollButtonColour = (50,50,50)
乾杯を。
編集:ここでは
は、テストのための完全なコードは、(私が質問を投稿以来、わずかな変更を加えた)である。
import pygame
pygame.init()
white = (255,255,255)
black = (0,0,0)
red = (255,0,0)
green = (0,255,0)
blue = (0,0,255)
display_width = 800
display_height = 600
gameDisplay = pygame.display.set_mode((display_width,display_height))
pygame.display.set_caption("Scroll Bar")
clock = pygame.time.Clock()
FPS = 60
gameExit = False
scrollButtonColour = (50,50,50)
while not gameExit:
mousePos = pygame.mouse.get_pos()
scrollButtonColour = (50,50,50)
for event in pygame.event.get():
if event.type == pygame.QUIT:
gameExit = True
if mousePos[0] >= 500 and mousePos[0] <= 530 and mousePos[1] >= 0 and mousePos[1] <= 100:
if pygame.mouse.get_pressed()[0]:
scrollButtonColour = (25,25,25)
print(mousePos)
gameDisplay.fill(green)
pygame.draw.rect(gameDisplay, red, (200,200,100,100))
pygame.draw.rect(gameDisplay, scrollButtonColour, (500, 0, 30, 100))
pygame.display.update()
clock.tick(FPS)
pygame.quit()
関連しないサイドノート:Pythonプログラマは通常、「camelCase」ではなく「snake_case」を変数名に使用します。 [PEP 8](https://www.python.org/dev/peps/pep-0008/)。 – skrx