From b12be82124077e3174e57dd58554d5f2668c135f Mon Sep 17 00:00:00 2001 From: Alan Aguiar Date: Tue, 25 Feb 2014 01:37:40 +0000 Subject: minor changes in sprite --- (limited to 'src') diff --git a/src/api/Sprite.py b/src/api/Sprite.py index b8c9e42..4fb97d3 100644 --- a/src/api/Sprite.py +++ b/src/api/Sprite.py @@ -9,26 +9,17 @@ from api.Math import distVec from Mouse import CMouse class CSprite(pygame.sprite.Sprite): - """ An enhanced Sprite class - expects a gameEngine.Scene class as its one parameter - Use methods to change image, direction, speed - Will automatically travel in direction and speed indicated - """ def __init__(self, x = 0, y = 0): pygame.sprite.Sprite.__init__(self) self.mPos = CVector(x, y) self.mVel = CVector(0, 0) - self.mOffsetX = 0 self.mOffsetY = 0 - self.maxSpeed = 50 - self.mactive = False self.mclicked = False - self.image = pygame.surface.Surface((0, 0), 0) self.rect = self.image.get_rect() @@ -38,31 +29,31 @@ class CSprite(pygame.sprite.Sprite): def setXY(self, aX, aY): self.mPos.setXY(aX, aY) - self.calculatePositionWithOffset() + + def setPosition(self, position): + self.mPos.setVec(position) + + def setPosTuple(self, position): + self.mPos.setXY(position[0], position[1]) def setVelXY(self, aVelX, aVelY): self.mVel.setXY(aVelX, aVelY) self.mVel.truncate(self.maxSpeed) def setVelVec(self, aVec): - self.mVel.setXY(aVec.getX(), aVec.getY()) + self.mVel.setVec(aVec) self.mVel.truncate(self.maxSpeed) def setMaxSpeed(self, aMaxSpeed): self.maxSpeed = aMaxSpeed def update(self): - self.mPos.add(self.mVel) - self.calculatePositionWithOffset() - self.mclicked = False - if CMouse().firstPress(): if self.rect.collidepoint(CMouse().getPos()): self.mactive = True - if self.mactive: if CMouse().release(): self.mactive = False @@ -77,22 +68,7 @@ class CSprite(pygame.sprite.Sprite): self.rect = self.image.get_rect() self.calculatePositionWithOffset() - def setPosition(self, position): - """ place the sprite directly at the given position - expects an vector - """ - self.mPos.setVec(position) - - def setPosTuple(self, position): - """ place the sprite directly at the given position - expects an (x, y) tuple - """ - self.mPos.setXY(position[0], position[1]) - def mouseDown(self): - """ boolean function. Returns True if the mouse is - clicked over the sprite, False otherwise - """ self.pressed = False if CMouse().pressed(): if self.rect.collidepoint(CMouse().getPos()): @@ -109,20 +85,11 @@ class CSprite(pygame.sprite.Sprite): return False def clicked(self): - """ Boolean function. Returns True only if mouse - is pressed and released over sprite - """ return self.mclicked def distanceTo(self, point): - """ returns distance to any point in pixels - can be used in circular collision detection - """ return distVec(self.mPos, point) - - def destroy(self): - self.image = None - + def calculatePositionWithOffset(self): self.rect.x = self.mPos.getX() - self.mOffsetX self.rect.y = self.mPos.getY() - self.mOffsetY @@ -136,3 +103,6 @@ class CSprite(pygame.sprite.Sprite): def getSize(self): return (self.rect[2], self.rect[3]) + def destroy(self): + self.image = None + diff --git a/src/api/Vector.py b/src/api/Vector.py index ea10dcf..84bdf2e 100644 --- a/src/api/Vector.py +++ b/src/api/Vector.py @@ -34,8 +34,8 @@ class CVector(object): return self.y def setVec(self, aVec): - self.x = aVec.x; - self.y = aVec.y; + self.x = aVec.x + self.y = aVec.y # Initialize the vector, giving polar coordinates (angle and magnitude). def setPolar(self, aAngle, aMag): @@ -79,8 +79,8 @@ class CVector(object): # Check division by zero. if (m > self.EPSILON): - self.x /= m; - self.y /= m; + self.x /= m + self.y /= m # Truncates the vector assuring that the magnitude not exceed the limit. def truncate(self, aLength): -- cgit v0.9.1