def update(self, *args):
"""
Handles the clicking of the Button and calls the function given in the constructor.
parameters: tuple arguments for the update (first argument should be an instance pygame.event.Event)
return values: -
"""
if self._state:
if self._state >= 2:
self._state = 1
else:
self._state = 0
self.markDirty()
if len(args) > 0 and self.isActive():
event = args[0]
if event.type == pygame.MOUSEBUTTONUP:
if self.rect.collidepoint(event.pos):
if event.button == 1:
try:
self._callback()
except:
pass
elif event.type == pygame.MOUSEBUTTONDOWN:
if self.rect.collidepoint(event.pos):
if event.button == 1:
self._state = 2
else:
self._state = 1
self.markDirty()
elif event.type == pygame.MOUSEMOTION:
if self.rect.collidepoint(event.pos):
if event.buttons[0]:
self._state = 2
else:
self._state = 1
self.markDirty()
super(Button, self).update(*args)
评论列表
文章目录