Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/api/Sprite.py52
-rw-r--r--src/api/Vector.py8
2 files changed, 15 insertions, 45 deletions
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):