Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFernando Sansberro <sansberro@batovi.com>2012-04-21 12:19:39 (GMT)
committer Fernando Sansberro <sansberro@batovi.com>2012-04-21 12:19:39 (GMT)
commit0eb075f87d98e8588fa2d8b8bc5f1513d377d8ba (patch)
treef4712b0a49968fdb950ec1343045ff0715bef6bf
parent4a59a2320d9b65a997c34c707631fbf5d206a7fa (diff)
Renamed states folder to game. Some improvements in codebase.
-rw-r--r--.project17
-rw-r--r--.pydevproject10
-rw-r--r--.settings/org.eclipse.core.resources.prefs14
-rw-r--r--src/CLEAN.bat2
-rwxr-xr-xsrc/Main.py8
-rwxr-xr-xsrc/api/Button.py15
-rwxr-xr-xsrc/api/Game.py60
-rw-r--r--[-rwxr-xr-x]src/api/GameState.py (renamed from src/states/GameState.py)32
-rwxr-xr-xsrc/api/Math.py4
-rwxr-xr-xsrc/api/Mouse.py58
-rw-r--r--src/api/Sprite.py111
-rwxr-xr-xsrc/api/Vector.py10
-rw-r--r--src/assets/images/cursor.pngbin0 -> 1346 bytes
-rw-r--r--src/game/Area1Game1.py (renamed from src/states/Area1Game1.py)16
-rw-r--r--[-rwxr-xr-x]src/game/Area1Game3.py (renamed from src/states/Area1Game3.py)2
-rw-r--r--[-rwxr-xr-x]src/game/Area1Game7.py (renamed from src/states/Area1Game7.py)14
-rw-r--r--[-rwxr-xr-x]src/game/Area2Game2.py (renamed from src/states/Area2Game2.py)0
-rw-r--r--[-rwxr-xr-x]src/game/CreditsState.py (renamed from src/states/CreditsState.py)124
-rw-r--r--[-rwxr-xr-x]src/game/MenuState.py (renamed from src/states/MenuState.py)316
-rw-r--r--[-rwxr-xr-x]src/game/__init__.py (renamed from src/states/__init__.py)0
20 files changed, 512 insertions, 301 deletions
diff --git a/.project b/.project
new file mode 100644
index 0000000..941ae78
--- /dev/null
+++ b/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>CeibalJamEducacionSexual</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.python.pydev.PyDevBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.python.pydev.pythonNature</nature>
+ </natures>
+</projectDescription>
diff --git a/.pydevproject b/.pydevproject
new file mode 100644
index 0000000..22c8d01
--- /dev/null
+++ b/.pydevproject
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?eclipse-pydev version="1.0"?>
+
+<pydev_project>
+<pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH">
+<path>/CeibalJamEducacionSexual/src</path>
+</pydev_pathproperty>
+<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.7</pydev_property>
+<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Python 2.7</pydev_property>
+</pydev_project>
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..e3decf9
--- /dev/null
+++ b/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,14 @@
+eclipse.preferences.version=1
+encoding//src/Main.py=utf-8
+encoding//src/api/Game.py=utf-8
+encoding//src/api/GameState.py=utf-8
+encoding//src/api/Mouse.py=utf-8
+encoding//src/api/Sprite.py=utf-8
+encoding//src/api/Vector.py=utf-8
+encoding//src/assets/data/area1game3_data.py=utf-8
+encoding//src/game/Area1Game1.py=utf-8
+encoding//src/game/Area1Game3.py=utf-8
+encoding//src/game/Area1Game7.py=utf-8
+encoding//src/game/Area2Game2.py=utf-8
+encoding//src/game/CreditsState.py=utf-8
+encoding//src/game/MenuState.py=utf-8
diff --git a/src/CLEAN.bat b/src/CLEAN.bat
new file mode 100644
index 0000000..f2bdbc4
--- /dev/null
+++ b/src/CLEAN.bat
@@ -0,0 +1,2 @@
+del C:\workspace\CeibalJamEducacionSexual\src\api\*.pyc
+del C:\workspace\CeibalJamEducacionSexual\src\game\*.pyc \ No newline at end of file
diff --git a/src/Main.py b/src/Main.py
index 16a6c6f..7d305fa 100755
--- a/src/Main.py
+++ b/src/Main.py
@@ -1,10 +1,12 @@
# -*- coding: utf-8 -*-
-from states.MenuState import CMenuState
+import api
+import game
+import game.MenuState
+from game.MenuState import CMenuState
+import api.Game
from api.Game import CGame
-# Test dr git.
-sdas
def main():
g = CGame()
diff --git a/src/api/Button.py b/src/api/Button.py
index cc26f80..f78cda2 100755
--- a/src/api/Button.py
+++ b/src/api/Button.py
@@ -4,7 +4,7 @@ import pygame
import api.Label
from api.Label import CLabel
-import Mouse
+from Mouse import *
class CButton(CLabel):
@@ -39,13 +39,18 @@ class CButton(CLabel):
#check for mouse input
- if Mouse.get_pressed() == (1, 0, 0):
- if self.rect.collidepoint(Mouse.get_position()):
+ if CMouse().firstPress():
+ if self.rect.collidepoint(CMouse().getPos()):
+ print("first press in button")
self.mactive = True
#check for mouse release
if self.mactive == True:
- if Mouse.get_pressed() == (0, 0, 0):
+ if CMouse().release():
self.mactive = False
- if self.rect.collidepoint(Mouse.get_position()):
+ if self.rect.collidepoint(CMouse().getPos()):
+ print("release in button")
self.mclicked = True
+
+ def destroy(self):
+ pass
diff --git a/src/api/Game.py b/src/api/Game.py
index b3fe189..b49b3ff 100755
--- a/src/api/Game.py
+++ b/src/api/Game.py
@@ -15,16 +15,21 @@ import api.MultiLabel
from api.MultiLabel import CMultiLabel
import gc
+from api.Mouse import CMouse
+
from gettext import gettext as _
+import Image
+
class CGame(object):
mInstance = None
mState = None
mScreen = None
mBackground = None
- mSampleSprite = None
- mSprites = None
+ mAllSprites = None
+ mMousePointerSprite = None
+ mMouse = None
mGroups = None
mMainSprites = None
mClock = None
@@ -49,15 +54,20 @@ class CGame(object):
print gc.collect(), " deleted objects"
self.mState = aState
+ self.mState.init()
def destroy(self):
if (self.mState != None):
self.mState.destroy()
self.mState = None
+ self.mMouse.destroy()
self.mBackground = None
+ self.mMousePointerSprite.destroy()
+ self.mMousePointerSprite = None
self.mInstance = None
# destroy pygame
- pygame.quit()
+ #pygame.quit()
+ pygame.mouse.set_visible(True)
print "destroy"
def init(self):
@@ -72,38 +82,22 @@ class CGame(object):
self.mBackground = pygame.Surface(self.mScreen.get_size())
self.mBackground.fill((255, 0, 0))
- #self.mBackground = CImage.loadImage("assets/images/back_menu.png", False)
-
- #self.mSampleSprite = CSuperSprite(self)
- #self.mSampleSprite.setSpeed(3)
- #self.mSampleSprite.setAngle(0)
- #self.mSampleSprite.boundAction = self.mSampleSprite.WRAP
-
+ # Sound system initialization.
+ pygame.mixer.init()
#self.mAllSprites = pygame.sprite.Group()
Sprites = []
self.mAllSprites = pygame.sprite.LayeredUpdates(Sprites)
-
- #self.mGroups = []
- #self.mSprites = [self.mSampleSprite]
- #self.mMainSprites = pygame.sprite.OrderedUpdates(self.mSprites)
- #self.mGroups.append(self.mMainSprites)
-
- #self.mS2 = CSprite()
- #self.mS2.setDX(10)
- #self.mS2.velX = 30
- #self.mS2.velY = 0
- #self.mS2.accelY = 1
- #self.mS2.maxSpeed = 200
+ pygame.mouse.set_visible(False)
+ self.mMouse = CMouse()
+ self.mMousePointerSprite = CSprite()
+ self.mMousePointerSprite.setImage(Image.loadImage('assets/images/cursor.png', True))
+ self.addChild(self.mMousePointerSprite)
self.mScreen.blit(self.mBackground, (0, 0))
self.mClock = pygame.time.Clock()
self.mQuit = False
-
- #self.mAllSprites.add(self.mSampleSprite)
- #self.mAllSprites.add(self.mS2)
-
def gameLoop(self):
print "start game loop here"
@@ -121,6 +115,9 @@ class CGame(object):
self.doEvents(event)
+ self.mMouse.update()
+ self.mMousePointerSprite.setXY(self.mMouse.getX(), self.mMouse.getY())
+
#self.mState.preUpdate()
self.mState.update()
@@ -144,15 +141,17 @@ class CGame(object):
"""
pass
- def setSprites(self, aSpritesArray):
- self.mSprites = aSpritesArray
+# def setSprites(self, aSpritesArray):
+# self.mSprites = aSpritesArray
#self.mGroups = []
#self.mMainSprites = pygame.sprite.OrderedUpdates(self.mSprites)
#self.mGroups.append(self.mMainSprites)
# Add a sprite to the sprite list.
def addChild(self, aSprite, aLayer=0):
+ self.mAllSprites.remove(self.mMousePointerSprite)
self.mAllSprites.add(aSprite, layer=aLayer)
+ self.mAllSprites.add(self.mMousePointerSprite)
def removeChild(self, aSprite):
self.mAllSprites.remove(aSprite)
@@ -160,4 +159,7 @@ class CGame(object):
def setBackground(self, aBackgroundImage):
self.mBackground = None
self.mBackground = aBackgroundImage
- self.mScreen.blit(self.mBackground, (0, 0))
+ self.blitBackground(self.mBackground)
+
+ def blitBackground(self, aBackgroundImage):
+ self.mScreen.blit(aBackgroundImage, (0, 0)) \ No newline at end of file
diff --git a/src/states/GameState.py b/src/api/GameState.py
index 1129e2a..42c09c7 100755..100644
--- a/src/states/GameState.py
+++ b/src/api/GameState.py
@@ -1,16 +1,16 @@
-# -*- coding: utf-8 -*-
-
-class CGameState(object):
-
- def __init__(self):
- print "CGameState init"
-
- def update(self):
- pass
- #print "CGameState update"
-
- #def render(self):
- # print "CGameState render"
-
- def destroy(self):
- print "CGameState destroy"
+# -*- coding: utf-8 -*-
+
+class CGameState(object):
+
+ def init(self):
+ print "CGameState init"
+
+ def update(self):
+ pass
+ #print "CGameState update"
+
+ #def render(self):
+ # print "CGameState render"
+
+ def destroy(self):
+ print "CGameState destroy"
diff --git a/src/api/Math.py b/src/api/Math.py
index e87a08c..196a736 100755
--- a/src/api/Math.py
+++ b/src/api/Math.py
@@ -30,6 +30,8 @@ def toStandardAngle(aAngle):
#-------------------------------------------------------------------------------
def radToDeg(aAngle):
return aAngle * 180 / math.pi
+ #return aAngle * 180 / 3.1415927
+
#-------------------------------------------------------------------------------
# degToRad().
@@ -42,8 +44,8 @@ def radToDeg(aAngle):
#-------------------------------------------------------------------------------
def degToRad(aAngle):
return aAngle * math.pi / 180
+ #return aAngle * 3.1415927 / 180
def dist(ax1, ay1, ax2, ay2):
return math.sqrt((ax2-ax1)**2 + (ay2-ay1)**2)
-
diff --git a/src/api/Mouse.py b/src/api/Mouse.py
index c487c56..bf0e0c8 100755
--- a/src/api/Mouse.py
+++ b/src/api/Mouse.py
@@ -2,10 +2,60 @@
import pygame
+class CMouse(object):
+ mInstance = None
+ mInitialized = False
+ mPressed = False
+ #mPressedLeastThanOneFrame = False
+ mPrevPressed = False
-def get_position():
- return pygame.mouse.get_pos()
+ 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 get_pressed():
- return pygame.mouse.get_pressed()
+ def inst(self):
+ return self.mInstance
+
+ def init(self):
+ if (self.mInitialized):
+ return
+ self.mInitialized = True
+
+ self.mPressed = False
+ #self.mPressedLeastThanOneFrame = False
+ self.mPrevPressed = False
+
+ def getPos(self):
+ return pygame.mouse.get_pos()
+
+ def getX(self):
+ return pygame.mouse.get_pos()[0]
+
+ def getY(self):
+ return pygame.mouse.get_pos()[1]
+
+ def pressed(self):
+ return self.mPressed
+
+ def firstPress(self):
+ return self.pressed() and not self.mPrevPressed
+
+ def release(self):
+ return not self.pressed() and self.mPrevPressed
+
+ def update(self):
+ #print("mouse update")
+ #print("x=" + str(self.getX()))
+ #print("y=" + str(self.getY()))
+
+ self.mPrevPressed = self.mPressed;
+ self.mPressed = (pygame.mouse.get_pressed() == (1, 0, 0))
+
+ def destroy(self):
+ self.mInstance = None
+ print "destroy"
diff --git a/src/api/Sprite.py b/src/api/Sprite.py
index 456e45f..201f9a3 100644
--- a/src/api/Sprite.py
+++ b/src/api/Sprite.py
@@ -9,7 +9,7 @@ import api.Math as CMath
import api.Vector
from api.Vector import CVector
-import api.Mouse as Mouse
+from Mouse import *
# TODO: Cambiar las conversiones de grados a radianes y viceversa usando las funciones.
@@ -26,6 +26,13 @@ class CSprite(pygame.sprite.Sprite):
Automatically rotates to point in indicated direction
Five kinds of boundary collision
"""
+
+ mPos = None
+
+ mOffsetX = 0
+ mOffsetY = 0
+
+ mTimeState = 0
def __init__(self):
pygame.sprite.Sprite.__init__(self)
@@ -36,10 +43,14 @@ class CSprite(pygame.sprite.Sprite):
self.mVel = CVector(0.0, 0.0)
self.mAccel = CVector(0.0, 0.0)
+ # Registration point offset.
+ self.mOffsetX = 0
+ self.mOffsetY = 0
+
# Speed of the sprite.
self.mSpeed = 0
-
- self.maxSpeed = 30
+
+ self.maxSpeed = 50
self.minSpeed = -3
# TODO: Take this values from a constants class.
@@ -55,6 +66,8 @@ class CSprite(pygame.sprite.Sprite):
# Action for the sprite when it reaches a border.
self.mBoundAction = CSprite.WRAP
+
+
#create a default text image as a placeholder
#This will usually be changed by a setImage call
#self.font = pygame.font.Font("freesansbold.ttf", 30)
@@ -68,8 +81,10 @@ class CSprite(pygame.sprite.Sprite):
# Set the position of the image.
# oldCenter is used to draw the trace in drawTrace().
# oldCenter is the position of the sprite in the previous frame.
- self.oldCenter = (self.mPos.getX(), self.mPos.getY())
- self.rect.center = (self.mPos.getX(), self.mPos.getY())
+ #self.oldCenter = (self.mPos.getX(), self.mPos.getY())
+ #self.rect.center = (self.mPos.getX(), self.mPos.getY())
+
+ self.calculatePositionWithOffset()
# Angle of rotation in degrees used for movement calculations.
self.mAngle = 0
@@ -79,16 +94,24 @@ class CSprite(pygame.sprite.Sprite):
self.pressed = False
self.states = {}
self.currentState = "default"
+
+ self.mTimeState = 0
+
+ def setRegistrationPointOffset(self, aOffsetX, aOffsetY):
+ self.mOffsetX = aOffsetX
+ self.mOffsetY = aOffsetY
def setXY(self, aX, aY):
#print 'alan', dir(self.mPos)
- self.mPos.setX(aX)
- self.mPos.setY(aY)
- self.rect.center = (self.mPos.getX(), self.mPos.getY())
+ self.mPos.setXY(aX, aY)
+ #self.rect.center = (self.mPos.getX(), self.mPos.getY())
+ self.calculatePositionWithOffset()
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())
def setAccelXY(self, aAccelX, aAccelY):
self.mAccel.setXY(aAccelX, aAccelY)
@@ -97,7 +120,10 @@ class CSprite(pygame.sprite.Sprite):
self.maxSpeed = aMaxSpeed
def update(self):
- self.oldCenter = self.rect.center
+
+ self.mTimeState += 1
+
+ #self.oldCenter = self.rect.center
# Run the logic for the sprite.
self.updateLogic()
# Calculate next position based on angle and velocity.
@@ -106,7 +132,8 @@ class CSprite(pygame.sprite.Sprite):
self.__rotateSpriteImage()
self.checkBounds()
- self.rect.center = (self.mPos.getX(), self.mPos.getY())
+ #self.rect.center = (self.mPos.getX(), self.mPos.getY())
+
# TODO: Test this. Need to pass a reference to background to draw.
# self.drawTrace((255,0,0))
@@ -118,8 +145,9 @@ class CSprite(pygame.sprite.Sprite):
if (self.mVel.getY() > self.maxSpeed):
self.mVel.setY(self.maxSpeed)
- self.mPos.add(self.mVel)
-
+ self.mPos.add(self.mVel)
+
+ self.calculatePositionWithOffset()
#---------------------------------------------------------------------------
# updateLogic().
@@ -226,24 +254,30 @@ class CSprite(pygame.sprite.Sprite):
if self.mRotation < 0:
self.mRotation = 360 - amt
- #---------------------------------------------------------------------------
+ #----------------------------------------------------------------------------------------------------------
# setImage().
# Loads the given file name as the master image that then is rotated.
- # The sprite must be facing east (angle 0). In the main loop the sprite is
- # rotated automatically.
+ # The sprite must be facing east (angle 0). In the main loop the sprite is rotated automatically.
#
# Parameters:
# aImageFilename: File path of the sprite image to be loaded.
# aIsTransparent: If the image is transparent (True) or not (True, by default).
#
# Returns: Nothing.
- #---------------------------------------------------------------------------
- def setImage(self, aImageFilename, aIsTransparent=True):
- #TODO: loadImage esta en la clase CImage.
+ #----------------------------------------------------------------------------------------------------------
+ def loadImage(self, aImageFilename, aIsTransparent=True):
self.mImageMaster = Image.loadImage(aImageFilename, aIsTransparent)
- #self.mImageMaster = self.mImageMaster.convert()
- self.image = self.mImageMaster
+ self.setImage(self.mImageMaster)
+ #self.image = self.mImageMaster
+ #self.rect = self.image.get_rect()
+ #self.rect.center = (self.mPos.getX(), self.mPos.getY())
+
+ def setImage(self, aImage):
+ self.mImageMaster = aImage
+ self.image = aImage
self.rect = self.image.get_rect()
+ #self.rect.center = (self.mPos.getX(), self.mPos.getY())
+ self.calculatePositionWithOffset()
def setDX(self, dx):
""" changes dx value and updates vector """
@@ -363,28 +397,28 @@ class CSprite(pygame.sprite.Sprite):
clicked over the sprite, False otherwise
"""
self.pressed = False
- if Mouse.get_pressed() == (1, 0, 0):
- if self.rect.collidepoint(Mouse.get_position()):
+ if CMouse().pressed():
+ if self.rect.collidepoint(CMouse().getPos()):
self.pressed = True
return self.pressed
-
+
def mouseOver(self):
- if pygame.mouse.get_pressed() == (0, 0, 0):
- if self.rect.collidepoint(pygame.mouse.get_pos()):
+ if not CMouse().pressed():
+ if self.rect.collidepoint(CMouse().getPos()):
return True
else:
return False
else:
return False
-
+
def clicked(self):
""" Boolean function. Returns True only if mouse
is pressed and released over sprite
"""
released = False
if self.pressed:
- if pygame.mouse.get_pressed() == (0, 0, 0):
- if self.rect.collidepoint(pygame.mouse.get_pos()):
+ if (not CMouse().pressed()):
+ if self.rect.collidepoint(CMouse().getPos()):
released = True
return released
@@ -551,3 +585,22 @@ class CSprite(pygame.sprite.Sprite):
# assume it's continue - keep going forever
pass
+ def destroy(self):
+ pass
+
+ def calculatePositionWithOffset(self):
+ self.rect = self.image.get_rect()
+ self.rect.x = self.mPos.getX() - self.mOffsetX
+ self.rect.y = self.mPos.getY() - self.mOffsetY
+
+ def getX(self):
+ return self.mPos.getX()
+
+ def getY(self):
+ return self.mPos.getY()
+
+ def setTimeState(self, aTimeState):
+ self.mTimeState = aTimeState
+
+ def getTimeState(self):
+ return self.mTimeState \ No newline at end of file
diff --git a/src/api/Vector.py b/src/api/Vector.py
index bd89b9c..e474541 100755
--- a/src/api/Vector.py
+++ b/src/api/Vector.py
@@ -3,12 +3,12 @@
import math
from math import *
-EPSILON = 0.000001
-
class CVector(object):
- #x = 0.0
- #y = 0.0
+ x = 0.0
+ y = 0.0
+
+ EPSILON = 0.000001
def __init__(self, aX = 0.0, aY = 0.0):
self.x = aX
@@ -80,7 +80,7 @@ class CVector(object):
self.m = self.magnitude();
# Check division by zero.
- if (self.m > EPSILON):
+ if (self.m > self.EPSILON):
self.x /= self.m;
self.y /= self.m;
diff --git a/src/assets/images/cursor.png b/src/assets/images/cursor.png
new file mode 100644
index 0000000..cb81bbe
--- /dev/null
+++ b/src/assets/images/cursor.png
Binary files differ
diff --git a/src/states/Area1Game1.py b/src/game/Area1Game1.py
index b15bbbf..92eb63b 100644
--- a/src/states/Area1Game1.py
+++ b/src/game/Area1Game1.py
@@ -3,12 +3,14 @@
import pygame
from api.Sprite import CSprite
from api.Button import CButton
-import api.Mouse as Mouse
+
+from api.Mouse import *
+
import api.Math as Math
import api.Image as Image
from api.Vector import CVector
from api.Game import CGame
-from states.GameState import CGameState
+from api.GameState import CGameState
import MenuState
from gettext import gettext as _
@@ -62,7 +64,7 @@ class Piece(CSprite):
self.setState(STATE_DRAG)
elif (self.mState == STATE_DRAG):
- x, y = Mouse.get_position()
+ x, y = CMouse().getPos()
self.setXY(x, y)
if self.clicked():
d = Math.dist(self.mPos.getX() , self.mPos.getY(), self.mDest.getX(), self.mDest.getY())
@@ -175,25 +177,25 @@ class CArea1Game1(CGameState):
# load the pieces
# parameters: aParent, aNum, aOrigin, aDestine
self.mPiece1 = Piece(self, 0, (824.0, 693.0), (487.0, 169.0))
- self.mPiece1.setImage('assets/images/a1g1/piece1.png', False)
+ self.mPiece1.loadImage('assets/images/a1g1/piece1.png', False)
self.mListPieces[0] = self.mPiece1
CGame().addChild(self.mPiece1)
self.mPiece9 = Piece(self, 8, (676.0, 680.0), (776.0, 353.0))
- self.mPiece9.setImage('assets/images/a1g1/piece9.png', False)
+ self.mPiece9.loadImage('assets/images/a1g1/piece9.png', False)
self.mListPieces[8] = self.mPiece9
CGame().addChild(self.mPiece9)
# load the options
self.mOption1 = CSprite()
self.mOption1.setXY(124, 145)
- self.mOption1.setImage('assets/images/a1g1/option1.png', False)
+ self.mOption1.loadImage('assets/images/a1g1/option1.png', False)
self.mOption1.update()
self.mListOptions[0] = self.mOption1
self.mOption9 = CSprite()
self.mOption9.setXY(1079, 347)
- self.mOption9.setImage('assets/images/a1g1/option9.png', False)
+ self.mOption9.loadImage('assets/images/a1g1/option9.png', False)
self.mOption9.update()
self.mListOptions[8] = self.mOption9
diff --git a/src/states/Area1Game3.py b/src/game/Area1Game3.py
index 55eab22..a12da10 100755..100644
--- a/src/states/Area1Game3.py
+++ b/src/game/Area1Game3.py
@@ -3,7 +3,7 @@
import pygame
import random
from api.Game import CGame
-from states.GameState import CGameState
+from api.GameState import CGameState
from api.Button import CButton
import MenuState
from api.Label import CLabel
diff --git a/src/states/Area1Game7.py b/src/game/Area1Game7.py
index 7540f20..1a6f32f 100755..100644
--- a/src/states/Area1Game7.py
+++ b/src/game/Area1Game7.py
@@ -6,12 +6,12 @@ import pygame
from api.Sprite import CSprite
from api.Button import CButton
from api.Label import CLabel
-import api.Mouse as Mouse
+from api.Mouse import *
import api.Math as Math
import api.Image as Image
from api.Vector import CVector
from api.Game import CGame
-from states.GameState import CGameState
+from api.GameState import CGameState
import MenuState
from gettext import gettext as _
@@ -73,7 +73,7 @@ class Piece(CSprite):
self.setState(STATE_DRAG)
elif (self.mState == STATE_DRAG):
- x, y = Mouse.get_position()
+ x, y = CMouse().getPos()
self.setXY(x, y)
if self.clicked():
d = Math.dist(self.mPos.getX() , self.mPos.getY(), self.mDest.getX(), self.mDest.getY())
@@ -192,23 +192,23 @@ class CArea1Game7(CGameState):
# load the pieces
# parameters: aParent, aNum, aOrigin, aDestine
self.mPiece1 = Piece(self, 0, (710.0, 442.0), (198.0, 229.0))
- self.mPiece1.setImage('assets/images/a1g7/piece01.png', False)
+ self.mPiece1.loadImage('assets/images/a1g7/piece01.png', False)
self.mListPieces[0] = self.mPiece1
CGame().addChild(self.mPiece1)
self.mPiece9 = Piece(self, 8, (676.0, 680.0), (512.0, 229.0))
- self.mPiece9.setImage('assets/images/a1g7/piece09.png', False)
+ self.mPiece9.loadImage('assets/images/a1g7/piece09.png', False)
self.mListPieces[8] = self.mPiece9
CGame().addChild(self.mPiece9)
# sprites for the mouseover events
self.mWord01 = CSprite()
- self.mWord01.setImage('assets/images/a1g7/fondo01.png', False)
+ self.mWord01.loadImage('assets/images/a1g7/fondo01.png', False)
self.mWord01.setXY(448, 74)
CGame().addChild(self.mWord01)
self.mWord02 = CSprite()
- self.mWord02.setImage('assets/images/a1g7/fondo02.png', False)
+ self.mWord02.loadImage('assets/images/a1g7/fondo02.png', False)
self.mWord02.setXY(410, 152)
CGame().addChild(self.mWord02)
diff --git a/src/states/Area2Game2.py b/src/game/Area2Game2.py
index 40a96af..40a96af 100755..100644
--- a/src/states/Area2Game2.py
+++ b/src/game/Area2Game2.py
diff --git a/src/states/CreditsState.py b/src/game/CreditsState.py
index cb274f4..9982f8b 100755..100644
--- a/src/states/CreditsState.py
+++ b/src/game/CreditsState.py
@@ -1,62 +1,62 @@
-# -*- coding: utf-8 -*-
-
-import MenuState
-from MenuState import *
-import GameState
-from GameState import CGameState
-import api.MultiLabel
-from api.MultiLabel import CMultiLabel
-import api.Game
-from api.Game import CGame
-import api.Button
-from api.Button import CButton
-import api.Image as CImage
-
-import pygame
-
-class CCreditsState(CGameState):
-
- mBackground = None
- mInstructions = None
- #mX = 10
- mButtonPlay = None
-
- def __init__(self):
- CGameState.__init__(self)
- #self.mInstructions = CMultiLabel()
- #CGame().addChild(self.mInstructions)
- #print self.mX
-
- self.mButtonPlay = CButton()
- self.mButtonPlay.bgColor = (0x99, 0x99, 0x66)
- self.mButtonPlay.font = pygame.font.Font('assets/fonts/fipps.ttf', 20)
- self.mButtonPlay.center = (400, 600)
- self.mButtonPlay.size = (200, 40)
- self.mButtonPlay.text = _('BACK Credits')
- CGame().addChild(self.mButtonPlay)
-
- self.mBackground = CImage.loadImage('assets/images/back_credits.png', False)
- CGame().setBackground(self.mBackground)
-
- def update(self):
- #print "menu update"
- CGameState.update(self)
-
- if self.mButtonPlay.clicked:
- print "clicked credits"
- ms = MenuState.CMenuState()
- CGame().setState(ms)
-
- #def render(self):
- # CGameState.render(self)
- # print "CMenuState render"
-
- def destroy(self):
- CGameState.destroy(self)
- CGame().removeChild(self.mButtonPlay)
- self.mButtonPlay = None
- self.mBackground = None
- print "CMenuState destroy"
-
- def doEvents(self, aEvent):
- print aEvent.type
+# -*- coding: utf-8 -*-
+
+import MenuState
+from MenuState import *
+import api.GameState
+from api.GameState import CGameState
+import api.MultiLabel
+from api.MultiLabel import CMultiLabel
+import api.Game
+from api.Game import CGame
+import api.Button
+from api.Button import CButton
+import api.Image as CImage
+
+import pygame
+
+class CCreditsState(CGameState):
+
+ mBackground = None
+ mInstructions = None
+ #mX = 10
+ mButtonBack = None
+
+ def init(self):
+ CGameState.init(self)
+ #self.mInstructions = CMultiLabel()
+ #CGame().addChild(self.mInstructions)
+ #print self.mX
+
+ self.mButtonBack = CButton()
+ self.mButtonBack.set_bgColor((0x99, 0x99, 0x66))
+ self.mButtonBack.font = pygame.font.Font('assets/fonts/fipps.ttf', 20)
+ self.mButtonBack.set_center((300, 300))
+ self.mButtonBack.set_size((200, 40))
+ self.mButtonBack.set_text("Volver") #_('BACK Credits')
+ CGame().addChild(self.mButtonBack)
+
+ self.mBackground = CImage.loadImage('assets/images/back_credits.png', False)
+ CGame().setBackground(self.mBackground)
+
+ def update(self):
+ #print "menu update"
+ CGameState.update(self)
+
+ if self.mButtonBack.clicked():
+ print "clicked back......"
+ ms = MenuState.CMenuState()
+ CGame().setState(ms)
+
+ #def render(self):
+ # CGameState.render(self)
+ # print "CMenuState render"
+
+ def destroy(self):
+ CGameState.destroy(self)
+ CGame().removeChild(self.mButtonBack)
+ self.mButtonBack = None
+ self.mBackground = None
+ print "CMenuState destroy"
+
+ def doEvents(self, aEvent):
+ print aEvent.type
diff --git a/src/states/MenuState.py b/src/game/MenuState.py
index b45fcb7..7ede0b7 100755..100644
--- a/src/states/MenuState.py
+++ b/src/game/MenuState.py
@@ -1,132 +1,184 @@
-# -*- coding: utf-8 -*-
-
-import pygame
-
-import states.GameState
-from states.GameState import CGameState
-import api.MultiLabel
-from api.MultiLabel import CMultiLabel
-import api.Game
-from api.Game import CGame
-import api.Button
-from api.Button import CButton
-import states.CreditsState
-from CreditsState import *
-import api.Image as Image
-
-import states.Area1Game1
-from states.Area1Game1 import CArea1Game1
-
-import states.Area1Game3
-from states.Area1Game3 import CArea1Game3
-
-import states.Area1Game7
-from states.Area1Game7 import CArea1Game7
-
-from gettext import gettext as _
-
-class CMenuState(CGameState):
-
- mBackground = None
- mInstructions = None
- #mX = 10
- mButtonA1G1= None
- mButtonA1G3 = None
- mExit = None
- #def __init__(self):
- # '''
- # Constructor
- # '''
-
- def __init__(self):
- CGameState.__init__(self)
- #self.mInstructions = CMultiLabel()
- #CGame().addChild(self.mInstructions)
- #print self.mX
-
- self.mButtonA1G1 = CButton()
- #TODO: Create a function to create image.
- self.mButtonA1G1.bgColor = (0x99, 0x99, 0x66)
- self.mButtonA1G1.font = pygame.font.Font('assets/fonts/fipps.ttf', 20)
- self.mButtonA1G1.set_center((110, 420))
- self.mButtonA1G1.set_size((200, 40))
- self.mButtonA1G1.set_text('A1 - Juego 1')
- CGame().addChild(self.mButtonA1G1)
-
- self.mButtonA1G3 = CButton()
- self.mButtonA1G3.bgColor = (0x99, 0x99, 0x66)
- self.mButtonA1G3.font = pygame.font.Font('assets/fonts/fipps.ttf', 20)
- self.mButtonA1G3.set_center((110, 470))
- self.mButtonA1G3.set_size((200, 40))
- self.mButtonA1G3.set_text('A1 - Juego 3')
- CGame().addChild(self.mButtonA1G3)
-
- self.mButtonA1G7 = CButton()
- self.mButtonA1G7.bgColor = (0x99, 0x99, 0x66)
- self.mButtonA1G7.font = pygame.font.Font('assets/fonts/fipps.ttf', 20)
- self.mButtonA1G7.set_center((110, 520))
- self.mButtonA1G7.set_size((200, 40))
- self.mButtonA1G7.set_text('A1 - Juego 7')
- CGame().addChild(self.mButtonA1G7)
-
- self.mExit = CButton()
- self.mExit.bgColor = (0x99, 0x99, 0x66)
- self.mExit.font = pygame.font.Font('assets/fonts/fipps.ttf', 20)
- self.mExit.set_center((110, 570))
- self.mExit.set_size((200, 40))
- self.mExit.set_text('Exit')
- CGame().addChild(self.mExit)
-
-
- self.mBackground = Image.loadImage('assets/images/back_menu.png', False)
- CGame().setBackground(self.mBackground)
-
- def update(self):
- #print "menu update"
- CGameState.update(self)
-
- if self.mButtonA1G1.clicked():
- print "clicked A1G1"
- #cs = CHelpState()
- a1g1 = CArea1Game1()
- CGame().setState(a1g1)
-
- elif self.mButtonA1G3.clicked():
- print "clicked A1G3"
- #cs = CHelpState()
- a1g3 = CArea1Game3()
- CGame().setState(a1g3)
-
- elif self.mButtonA1G7.clicked():
- print "clicked A1G3"
- #cs = CHelpState()
- a1g7 = CArea1Game7()
- CGame().setState(a1g7)
-
- elif self.mExit.clicked():
- print 'exit'
- CGame().destroy()
- exit()
-
- #def render(self):
- # CGameState.render(self)
- # print "CMenuState render"
-
- def destroy(self):
- CGameState.destroy(self)
- #self.mInstructions.destroy()
- self.mInstructions = None
- CGame().removeChild(self.mButtonA1G1)
- CGame().removeChild(self.mButtonA1G3)
- CGame().removeChild(self.mButtonA1G7)
- CGame().removeChild(self.mExit)
- #self.mButtonPlay.destroy()
- self.mButtonA1G1 = None
- self.mButtonA1G3 = None
- self.mButtonA1G7 = None
- self.mExit = None
- self.mBackground = None
- print "CMenuState destroy"
-
- def doEvents(self, aEvent):
- print aEvent.type
+# -*- coding: utf-8 -*-
+
+import pygame
+
+import api.GameState
+from api.GameState import CGameState
+import api.MultiLabel
+from api.MultiLabel import CMultiLabel
+import api.Game
+from api.Game import CGame
+import api.Button
+from api.Button import CButton
+import game.CreditsState
+from CreditsState import *
+import api.Image as Image
+
+import game.Area1Game1
+from game.Area1Game1 import CArea1Game1
+
+import game.Area1Game3
+from game.Area1Game3 import CArea1Game3
+
+import game.Area1Game7
+from game.Area1Game7 import CArea1Game7
+
+from gettext import gettext as _
+
+class CMenuState(CGameState):
+
+ mBackground = None
+ mInstructions = None
+ #mX = 10
+ mButtonA1G1= None
+ mButtonA1G3 = None
+
+ mButtonCredits = None
+ mButtonPlay = None
+ mButtonHelp = None
+ mButtonExit = None
+
+ #def __init__(self):
+ # '''
+ # Constructor
+ # '''
+
+ def init(self):
+ CGameState.__init__(self)
+ #self.mInstructions = CMultiLabel()
+ #CGame().addChild(self.mInstructions)
+ #print self.mX
+
+ self.mButtonCredits = CButton()
+ self.mButtonCredits.bgColor = (0x99, 0x99, 0x66)
+ self.mButtonCredits.font = pygame.font.Font('assets/fonts/fipps.ttf', 20)
+ self.mButtonCredits.set_center((600, 420))
+ self.mButtonCredits.set_size((200, 40))
+ self.mButtonCredits.set_text('Créditos')
+ CGame().addChild(self.mButtonCredits)
+
+ self.mButtonPlay = CButton()
+ self.mButtonPlay.bgColor = (0x99, 0x99, 0x66)
+ self.mButtonPlay.fgColor = (0xFF, 0xFF, 0xFF)
+ self.mButtonPlay.font = pygame.font.Font('assets/fonts/fipps.ttf', 28)
+ self.mButtonPlay.set_center((600, 50))
+ self.mButtonPlay.set_size((200, 40))
+ self.mButtonPlay.set_text('Jugar')
+ CGame().addChild(self.mButtonPlay)
+
+ self.mButtonHelp = CButton()
+ self.mButtonHelp.bgColor = (0x99, 0x99, 0x66)
+ self.mButtonHelp.font = pygame.font.Font('assets/fonts/fipps.ttf', 32)
+ self.mButtonHelp.set_center((600, 470))
+ self.mButtonHelp.set_size((200, 40))
+ self.mButtonHelp.set_text('Ayuda')
+ CGame().addChild(self.mButtonHelp)
+
+ self.mButtonExit = CButton()
+ self.mButtonExit.bgColor = (0x99, 0x99, 0x66)
+ self.mButtonExit.font = pygame.font.Font('assets/fonts/fipps.ttf', 32)
+ self.mButtonExit.set_center((600, 520))
+ self.mButtonExit.set_size((200, 40))
+ self.mButtonExit.set_text('Salir')
+ CGame().addChild(self.mButtonExit)
+
+ self.mButtonA1G1 = CButton()
+ #TODO: Create a function to create image.
+ self.mButtonA1G1.bgColor = (0x99, 0x99, 0x66)
+ self.mButtonA1G1.font = pygame.font.Font('assets/fonts/fipps.ttf', 20)
+ self.mButtonA1G1.set_center((110, 420))
+ self.mButtonA1G1.set_size((200, 40))
+ self.mButtonA1G1.set_text('A1 - Juego 1')
+ CGame().addChild(self.mButtonA1G1)
+
+ self.mButtonA1G3 = CButton()
+ self.mButtonA1G3.bgColor = (0x99, 0x99, 0x66)
+ self.mButtonA1G3.font = pygame.font.Font('assets/fonts/fipps.ttf', 20)
+ self.mButtonA1G3.set_center((110, 470))
+ self.mButtonA1G3.set_size((200, 40))
+ self.mButtonA1G3.set_text('A1 - Juego 3')
+ CGame().addChild(self.mButtonA1G3)
+
+ self.mButtonA1G7 = CButton()
+ self.mButtonA1G7.bgColor = (0x99, 0x99, 0x66)
+ self.mButtonA1G7.font = pygame.font.Font('assets/fonts/fipps.ttf', 20)
+ self.mButtonA1G7.set_center((110, 520))
+ self.mButtonA1G7.set_size((200, 40))
+ self.mButtonA1G7.set_text('A1 - Juego 7')
+ CGame().addChild(self.mButtonA1G7)
+
+ self.mBackground = Image.loadImage('assets/images/back_menu.png', False)
+ CGame().setBackground(self.mBackground)
+
+ def update(self):
+ #print "menu update"
+ CGameState.update(self)
+
+ if self.mButtonCredits.clicked():
+ print "clicked credits"
+ #cs = CHelpState()
+ credits = CCreditsState()
+ CGame().setState(credits)
+
+ elif self.mButtonPlay.clicked():
+ print "clicked play"
+ # game = CLevelState()
+ # CGame().setState(game)
+
+ elif self.mButtonHelp.clicked():
+ print "clicked help"
+ #cs = CHelpState()
+ help = CCreditsState()
+ CGame().setState(help)
+
+ elif self.mButtonExit.clicked():
+ print 'exit'
+ CGame().destroy()
+ exit()
+
+ elif self.mButtonA1G1.clicked():
+ print "clicked A1G1"
+ #cs = CHelpState()
+ a1g1 = CArea1Game1()
+ CGame().setState(a1g1)
+
+ elif self.mButtonA1G3.clicked():
+ print "clicked A1G3"
+ #cs = CHelpState()
+ a1g3 = CArea1Game3()
+ CGame().setState(a1g3)
+
+ elif self.mButtonA1G7.clicked():
+ print "clicked A1G3"
+ #cs = CHelpState()
+ a1g7 = CArea1Game7()
+ CGame().setState(a1g7)
+
+ #def render(self):
+ # CGameState.render(self)
+ # print "CMenuState render"
+
+ def destroy(self):
+ CGameState.destroy(self)
+ #self.mInstructions.destroy()
+ self.mInstructions = None
+ CGame().removeChild(self.mButtonCredits)
+ CGame().removeChild(self.mButtonPlay)
+ CGame().removeChild(self.mButtonHelp)
+ CGame().removeChild(self.mButtonExit)
+ CGame().removeChild(self.mButtonA1G1)
+ CGame().removeChild(self.mButtonA1G3)
+ CGame().removeChild(self.mButtonA1G7)
+ #self.mButtonPlay.destroy()
+ self.mButtonCredits = None
+ self.mButtonPlay = None
+ self.mButtonExit = None
+ self.mButtonExit = None
+ self.mButtonA1G1 = None
+ self.mButtonA1G3 = None
+ self.mButtonA1G7 = None
+ self.mBackground = None
+ print "CMenuState destroy"
+
+ def doEvents(self, aEvent):
+ print aEvent.type \ No newline at end of file
diff --git a/src/states/__init__.py b/src/game/__init__.py
index e69de29..e69de29 100755..100644
--- a/src/states/__init__.py
+++ b/src/game/__init__.py