Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlan Aguiar <alanjas@hotmail.com>2014-01-11 23:29:30 (GMT)
committer Alan Aguiar <alanjas@hotmail.com>2014-01-11 23:29:30 (GMT)
commit352d8f57e63e628d3c3082de03ddbad7d8e5a4f8 (patch)
treef6fbac962f47051a56cab3673b44966061ba0e7a /src
parentbbc13785debddec4da6b992ce025596a5847a98b (diff)
fix aspect ratio - mouse scaled
Diffstat (limited to 'src')
-rw-r--r--src/api/Game.py8
-rw-r--r--src/api/Mouse.py47
-rw-r--r--src/api/Sprite2.py11
3 files changed, 45 insertions, 21 deletions
diff --git a/src/api/Game.py b/src/api/Game.py
index 6c2cc02..30b1daa 100644
--- a/src/api/Game.py
+++ b/src/api/Game.py
@@ -74,14 +74,15 @@ class CGame(object):
info = pygame.display.Info()
width = info.current_w
height = info.current_h
+
if width/1200.0 < height/900.0:
self.mScale = width/1200.0
self.mWidth = width
- self.mHeight = int(height * self.mScale)
+ self.mHeight = int(900 * self.mScale)
else:
self.mScale = height/900.0
self.mHeight = height
- self.mWidth = int(width * self.mScale)
+ self.mWidth = int(1200 * self.mScale)
self.mScreen = pygame.display.set_mode((self.mWidth, self.mHeight), pygame.FULLSCREEN)
pygame.display.set_caption(_('JES'))
self.window = pygame.Surface((1200, 900), 0, self.mScreen)
@@ -99,6 +100,7 @@ class CGame(object):
pygame.mouse.set_visible(False)
self.mMouse = CMouse()
+ self.mMouse.set_scale(self.mScale)
self.mMousePointerSprite = CSprite()
self.mMousePointerSprite.setImage(Image.loadImage('assets/images/cursor.png', True))
#insert mouse pointer at layer 5
@@ -127,7 +129,7 @@ class CGame(object):
self.mQuit = True
self.mMouse.update()
- self.mMousePointerSprite.setXY(self.mMouse.getX(), self.mMouse.getY())
+ self.mMousePointerSprite.setPosTuple(self.mMouse.getPos())
self.mState.update()
diff --git a/src/api/Mouse.py b/src/api/Mouse.py
index 0db50d4..da27c30 100644
--- a/src/api/Mouse.py
+++ b/src/api/Mouse.py
@@ -7,7 +7,6 @@ class CMouse(object):
mInstance = None
mInitialized = False
mPressed = False
- #mPressedLeastThanOneFrame = False
mPrevPressed = False
def __new__(self, *args, **kargs):
@@ -25,23 +24,43 @@ class CMouse(object):
if (self.mInitialized):
return
self.mInitialized = True
-
+ self.mScale = 1
self.mPressed = False
- #self.mPressedLeastThanOneFrame = False
self.mPrevPressed = False
+
+ 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 getPos(self):
+ def _getPosN(self):
return pygame.mouse.get_pos()
-
- def getX(self):
+
+ def _getXN(self):
return pygame.mouse.get_pos()[0]
-
- def getY(self):
+
+ 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)
@@ -49,14 +68,10 @@ class CMouse(object):
return (not(self.mPressed) and self.mPrevPressed)
def update(self):
- #print("mouse update")
- #print("x=" + str(self.getX()))
- #print("y=" + str(self.getY()))
-
- self.mPrevPressed = self.mPressed;
+ 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
- #print "destroy"
+
diff --git a/src/api/Sprite2.py b/src/api/Sprite2.py
index 5e9e1c6..57f0ed6 100644
--- a/src/api/Sprite2.py
+++ b/src/api/Sprite2.py
@@ -108,13 +108,20 @@ class CSprite(pygame.sprite.Sprite):
self.rect = self.image.get_rect()
self.calculatePositionWithOffset()
- def setPosition (self, position):
+ def setPosition(self, position):
""" place the sprite directly at the given position
- expects an (x, y) tuple
+ expects an vector
"""
self.mPos.setX(position.getX())
self.mPos.setY(position.getY())
+ 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 setSpeedLimits(self, amax, amin):
""" determines maximum and minimum
speeds you will allow through