Mit dem pygame Modul habe ich ein schwarzes Rechteck auf dem Bildschirm gezeichnet. Ich schreibe einen Code, der das Rechteck "hervorhebt", indem ich ein anderes (grünes) Rechteck um das Rechteck herum zeichne (mit der Breite = 4), wenn ich mit der Maus darüber gehe. Es funktioniert, aber nur, wenn die Maus darüber bewegt wird. Wenn es auf der Oberfläche des schwarzen Rechtecks steht, wird das grüne Rechteck nicht angezeigt. Hier ist mein Code:Python 3.5.2: Pygame hightlight Rechteck wenn Maus drauf
import random, pygame, sys
from pygame.locals import *
pygame.init()
done = False
clock = pygame.time.Clock()
white = (255,255,255) # COLLORS
black = (0,0,0)
red = (255,0,0)
green = (0,100,0)
display_width = 800 # SCREEN DIMMENSION
display_height = 600
game_display = pygame.display.set_mode((display_width,display_height)) # SCREEN
def draw_rect(x,y):
rect = pygame.Rect(x, y, 40, 40)
pygame.draw.rect(game_display, black, rect)
if rect.collidepoint(mousex,mousey):
box_hightlight(x,y)
def box_hightlight(x,y):
pygame.draw.rect(game_display,green,(x-5,y-5,50,50),4)
while done != True:
x = (display_width - 40)/2
y = (display_height - 40)/2
mousex = 0 # used to store x coordinate of mouse event
mousey = 0 # used to store y coordinate of mouse event
for event in pygame.event.get(): # PRESSED KEYS EFFECTS
if event.type == pygame.QUIT:
done = True
elif event.type == MOUSEMOTION :
mousex, mousey = event.pos
elif event.type == MOUSEBUTTONUP:
mousex, mousey = event.pos
mouseClicked = True
game_display.fill(white)
draw_rect(x,y)
pygame.display.update()
clock.tick(60)
Was habe ich verpasst?
Vielen Dank! Es funktionierte ! Auch wenn ich nur die Maus gelöscht habe = 0 mousey = 0, hat es auch funktioniert. – ROBlackSnail