Đặt hẹn giờ khi chuột được bấm lần đầu tiên để đặt người dùng vào hàng đợi sự kiện pygame và đặt biến thành 1 để cho biết nhấp chuột. Khi nhấp chuột thứ hai xảy ra, hãy kiểm tra biến và đặt đối tượng sự kiện hẹn giờ thành tắt. Kiểm tra xem userevent có xuất hiện trên hàng đợi hay không vì điều này có nghĩa là bộ hẹn giờ đã hết thời gian chờ. xem câu trả lời xinh đẹp này cho biết thêm thông tin: Move an object every few seconds in Pygame
Đây là mã, thay thế các double_click()
cuộc gọi với lời gọi hàm của riêng bạn:
def run():
global clock, double_click_event, timer
double_click_event = pygame.USEREVENT + 1
timer = 0
while True:
clock.tick(60)
check_events()
frame.update()
screen.blit(frame, (0,0))
pygame.display.flip()
def check_events():
global dispatcher, double_click_event, timer
events = pygame.event.get()
for event in events:
if event.type == pygame.QUIT:
sys.exit()
if event.type == pygame.MOUSEBUTTONDOWN:
if timer == 0:
pygame.time.set_timer(double_click_event, 500)
timerset = True
else:
if timer == 1:
pygame.time.set_timer(double_click_event, 0)
double_click()
timerset =False
if timerset:
timer = 1
return
else:
timer = 0
return
elif event.type == double_click_event:
# timer timed out
pygame.time.set_timer(double_click_event, 0)
timer = 0
print "evt = dble click"