# -*- coding: utf-8 -*- import pygame class CMouse(object): mInstance = None mInitialized = False mPressed = False mPrevPressed = False def __new__(self, *args, **kargs): if (self.mInstance is None): self.mInstance = object.__new__(self, *args, **kargs) self.init(self.mInstance) #else: # print "Warning: CMouse(): You are not allowed to instantiate it more than once." return self.mInstance def inst(self): return self.mInstance def init(self): if (self.mInitialized): return self.mInitialized = True self.mScale = 1 self.mPressed = False self.mPrevPressed = False self.getPos = self._getPosN self.getX = self._getXN self.getY = self._getYN def set_scale(self, aScale): self.mScale = aScale if self.mScale == 1: self.getPos = self._getPosN self.getX = self._getXN self.getY = self._getYN else: self.getPos = self._getPosS self.getX = self._getXS self.getY = self._getYS def _getPosN(self): return pygame.mouse.get_pos() def _getXN(self): return pygame.mouse.get_pos()[0] def _getYN(self): return pygame.mouse.get_pos()[1] def _getPosS(self): x, y = pygame.mouse.get_pos() return ( int(x / self.mScale) , int(y / self.mScale) ) def _getXS(self): return int(pygame.mouse.get_pos()[0] / self.mScale) def _getYS(self): return int(pygame.mouse.get_pos()[1] / self.mScale) def pressed(self): return self.mPressed def firstPress(self): return (self.mPressed and not self.mPrevPressed) def release(self): return (not(self.mPressed) and self.mPrevPressed) def update(self): self.mPrevPressed = self.mPressed pp = pygame.mouse.get_pressed() self.mPressed = (pp[0] == 1 and pp[1] == 0 and pp[2] == 0) def destroy(self): self.mInstance = None