7

私はイメージを持っています:

newGameButton = pygame.image.load("images/newGameButton.png").convert_alpha()

次に、それを画面に表示します。

screen.blit(newGameButton, (0,0))

マウスが画像に触れているかどうかを検出するにはどうすればよいですか?

4

2 に答える 2

19

を使用して、の境界の説明Surface.get_rectを取得し、を使用して、マウスカーソルがこの内にあるかどうかを確認します。RectSurface.collidepoint()Rect


例:

if newGameButton.get_rect().collidepoint(pygame.mouse.get_pos()):
    print "mouse is over 'newGameButton'"
于 2012-08-08T06:36:29.053 に答える
5

これを行うにはもっと Pythonic な方法があると思いますが、ここに簡単な例を示します。

button_x = 0
button_y = 0
newGameButton = pygame.image.load("images/newGameButton.png").convert_alpha()
x_len = newGameButton.get_width()
y_len = newGameButton.get_height()
mos_x, mos_y = pygame.mouse.get_pos()
if mos_x>button_x and (mos_x<button_x+x_len):
    x_inside = True
else: x_inside = False
if mos_y>button_y and (mos_y<button_y+y_len):
    y_inside = True
else: y_inside = False
if x_inside and y_inside:
    #Mouse is hovering over button
screen.blit(newGameButton, (button_x,button_y))

pygame のマウスと pygameサーフェスの詳細を参照してください。

また、これに密接に関連する例を次に示します

于 2012-08-07T13:01:58.837 に答える