import CSPrite #Piece class hereda de CSprite class Piece(CSprite): STATE_STALE = 0 STATE_DRAG = 1 STATE_ADJUST = 2 STATE_RETURN = 3 STATE_OK = 4 mState = STATE_NONE MIN_DISTANCE = 40 TIME_RETURN = 15 TIME_ADJUST = 7.5 RADIUS_COLLISION = 10 def init(self, aXOrigin, aYOrigin, aXDest, aYDest): setState(STATE_STALE) mXOrigin = aXOrigin mYOrigin = aYOrigin mXDest = aXDest mYDest = aYdest setMaxVel(10, 10) #image = .... def update(self): if (aState == STATE_STALE): if (mouse se cliquea encima del objeto): self.setState(STATE_DRAG) return if (aState = STATE_DRAG): x = mouse x y = mouse y if (se suelta el mouse): if CMath.dist(x, y, mXDest, mYDest) < MIN_DISTANCE): self.setState(STATE_ADJUST) else: self.setState(STATE_RETURN) if (aState == STATE_ADJUST): if (CMath.dist(x, y, mXDest, mYDest) < RADIUS_COLLISION): self.setState(STATE_OK) if (aState == STATE_RETURN): if (CMath.dist(x, y, mXOrigin, mYOrigin) < RADIUS_COLLISION): play(Sonido mal) self.setState(STATE_STALE) if (aState == STATE_OK): return def render(self): pass def destroy(self): pass #eliminar la imagen creada def setState(aState): if (aState == STATE_STALE): x = mXOrigin y = mYOrigin velX = 0 velY = 0 if (aState = STATE_DRAG): velX = 0 velY = 0 if (aState == STATE_ADJUST): velX = (mXDest - x) / TIME_ADJUST velY = (mXDest - y) / TIME_ADJUST if (aState == STATE_RETURN): velX = (mXOrigin - x) / TIME_RETURN velY = (mXOrigin - y) / TIME_RETURN if (aState == STATE_OK): x = mXDest y = mYDest xVel = 0 yVel = 0 #play(Sonido OK) mState = aState def getState(self): return mState