Я хочу создать пазл с картинками, использующий вводы мышью для перемещения частей, я написал этот модуль для получения вводов мышью, но когда он используется, он позволяет мне только закрыть окно pygame с диспетчером задач.
Это также, по-видимому, заставляет программу зависать до тех пор, пока одно из условий не будет выполнено.
Должен ли я полностью переписать этот модуль или я просто допустил ошибку?
Спасибо за вашу помощь.
import Data
import pygame
pygame.init()
def MD():
event = pygame.event.wait()
det_gen_pos = None #determen general position # return index 0
det_gen_mov = None #determen general movement # return index 1
det_L_D = False #determen left press # return index 2
det_L_U = False #determen left release # return index 3
det_M_D = False #determen right press # return index 4
det_M_U = False #determen right release # return index 5
det_R_D = False #determem wheel press # return index 6
det_R_U = False #determen wheel release # return index 7
# 0 turning forward # 1 turning backwards # 2 stop turning forward # 3 stop turning backwards
det_W_T = None #determens 4 different states of the wheel # return index 8
if event.type == pygame.MOUSEMOTION:
det_gen_pos = event.pos
det_gen_mov = event.rel
if event.type == pygame.MOUSEBUTTONDOWN:
if event.button == 1:
det_L_D = True
if event.button == 2:
det_M_D = True
if event.button == 3:
det_R_D = True
if event.button == 4:
det_W_T = 0
if event.button == 5:
det_R_D = 2
det_gen_pos = event.pos
if event.type == pygame.MOUSEBUTTONUP:
if event.button == 1:
det_L_U = True
if event.button == 2:
det_M_U = True
if event.button == 3:
det_R_U = True
if event.button == 4:
det_W_T = 1
if event.button == 5:
det_R_D = 3
det_gen_pos = event.pos
Data.LastMotion.append((det_gen_pos, det_gen_mov, det_L_D, det_L_U, det_M_D, det_M_U, det_R_D, det_R_U ,det_W_T))
if len(Data.LastMotion) == Data.MotionCount:
Data.LastMotion.pop(0)
return Data.LastMotion[len(Data.LastMotion) - 1]