diff options
author | Alan Aguiar <alanjas@hotmail.com> | 2012-03-05 03:21:34 (GMT) |
---|---|---|
committer | Alan Aguiar <alanjas@hotmail.com> | 2012-03-05 03:21:34 (GMT) |
commit | 78fc721bb19126d41ce08e82026687241dcbfcde (patch) | |
tree | 904faab25473c7edc8618447c51c2629b081b6cd | |
parent | f4828279edd8ab5f295b484d09fc5c06bc11fbfc (diff) |
some changes in area1game1
-rwxr-xr-x | src/states/Area1Game1.py | 132 | ||||
-rwxr-xr-x | src/states/CreditsState.py | 4 | ||||
-rwxr-xr-x | src/states/MenuState.py | 6 |
3 files changed, 96 insertions, 46 deletions
diff --git a/src/states/Area1Game1.py b/src/states/Area1Game1.py index a01016d..4f957cf 100755 --- a/src/states/Area1Game1.py +++ b/src/states/Area1Game1.py @@ -17,11 +17,16 @@ from api.Button import CButton import api.Image as Image +import api.Vector +from api.Vector import CVector + import MenuState from MenuState import * -import api.Mouse -from api.Mouse import CMouse +import api.Mouse as Mouse + +import api.Math as Math + STATE_STALE = 0 STATE_DRAG = 1 @@ -33,8 +38,6 @@ STATE_OK = 4 class Piece(CSprite): - - #mState = STATE_NONE mState = None MIN_DISTANCE = 40 @@ -43,45 +46,73 @@ class Piece(CSprite): TIME_ADJUST = 7.5 RADIUS_COLLISION = 10 + + mPos = CVector(0.0, 0.0) + mOrigin = CVector(0.0, 0.0) + mDest = CVector(0.0, 0.0) + center = (0.0, 0.0) + size = (0.0, 0.0) + + active = False + clicked = False - - def init(self, aXOrigin, aYOrigin, aXDest, aYDest): + def init(self): + CButton.__init__(self) + self.setMaxVel(10, 10) setState(STATE_STALE) - - self.mOrigin = CVector(aXOrigin, aYOrigin) - self.mDest = VCector(aXDest, aYDest) - - setMaxVel(10, 10) - #image = .... + def set_origin(self, aOrigin): + self.mOrigin = aOrigin + self.mPos = aOrigin + self.setXY(aOrigin.getX(), aOrigin.getY()) + def set_destine(self, aDestine): + self.mDestine = aDestine def update(self): - - if (aState == STATE_STALE): + CSprite.update(self) + + self.clicked = False + + #TODO: Make a CMouse class and check for isPressed() and click(). + + #check for mouse input + if Mouse.get_pressed() == (1, 0, 0): + if self.rect.collidepoint(Mouse.get_position()): + self.active = True + #check for mouse release + if self.active == True: + if Mouse.get_pressed() == (0, 0, 0): + self.active = False + if self.rect.collidepoint(Mouse.get_position()): + self.clicked = True + #print 'click' + self.setState(STATE_DRAG) + + if (self.mState == STATE_STALE): if self.mouseDown(): self.setState(STATE_DRAG) return - if (aState == STATE_DRAG): - x, y = CMouse.get_position() - pass - if self.clicked(): - if (CMath.dist(x, y, mXDest, mYDest) < MIN_DISTANCE): - self.setState(STATE_ADJUST) - else: - self.setState(STATE_RETURN) + if (self.mState == STATE_DRAG): + x, y = Mouse.get_position() + self.setXY(x, y) + if self.clicked: + if (Math.dist(x, y, self.mDest.getX(), self.mDest.getY()) < self.MIN_DISTANCE): + self.setState(STATE_ADJUST) + else: + self.setState(STATE_RETURN) - if (aState == STATE_ADJUST): - if (CMath.dist(x, y, mXDest, mYDest) < RADIUS_COLLISION): + if (self.mState == STATE_ADJUST): + if (Math.dist(x, y, self.mDest.getX(), self.mDest.getY()) < self.RADIUS_COLLISION): self.setState(STATE_OK) - if (aState == STATE_RETURN): - if (CMath.dist(x, y, mXOrigin, mYOrigin) < RADIUS_COLLISION): + if (self.mState == STATE_RETURN): + if (Math.dist(x, y, self.mOrigin.getX(), self.mOrigin.getY()) < self.RADIUS_COLLISION): #play(Sonido mal) self.setState(STATE_STALE) - if (aState == STATE_OK): + if (self.mState == STATE_OK): return @@ -97,19 +128,17 @@ class Piece(CSprite): def setState(self, aState): if (aState == STATE_STALE): - x = mXOrigin - y = mYOrigin - velX = 0 - velY = 0 + self.setPosition(self.mOrigin) + #self.setXY(100, 200) + self.mVel = CVector(0.0, 0.0) if (aState == STATE_DRAG): - velX = 0 - velY = 0 + self.mVel = CVector(0.0, 0.0) if (aState == STATE_ADJUST): - velX = (mXDest - x) / TIME_ADJUST - velY = (mXDest - y) / TIME_ADJUST + self.setVelXY((self.mDest.getX() - self.mPos.getX()) / self.TIME_ADJUST, + (self.mDest.getY() - self.mPos.getY()) / self.TIME_ADJUST) if (aState == STATE_RETURN): - velX = (mXOrigin - x) / TIME_RETURN - velY = (mXOrigin - y) / TIME_RETURN + self.setVelXY((self.mDest.getX() - self.mPos.getX()) / self.TIME_ADJUST, + (self.mDest.getY() - self.mPos.getY()) / self.TIME_ADJUST) if (aState == STATE_OK): x = mXDest y = mYDest @@ -118,7 +147,7 @@ class Piece(CSprite): #play(Sonido OK) - mState = aState + self.mState = aState def getState(self): return mState @@ -146,7 +175,7 @@ class CArea1Game1(CGameState): #TODO: Create a function to create image. self.mButtonBack.bgColor = (0x99, 0x99, 0x66) self.mButtonBack.font = pygame.font.Font('assets/fonts/fipps.ttf', 20) - self.mButtonBack.center = (110, 420) + self.mButtonBack.setCenter((110, 420)) self.mButtonBack.size = (200, 40) self.mButtonBack.text = "Volver" CGame().addChild(self.mButtonBack) @@ -157,8 +186,23 @@ class CArea1Game1(CGameState): # load the zone 1 and 2 for the objects self.mArea1 = CSprite() self.mArea1.setImage('assets/images/area1.png', False) + self.mArea1.setXY(400, 200) + self.mArea1.center = (400, 200) CGame().addChild(self.mArea1) + self.mArea2 = CSprite() + self.mArea2.setImage('assets/images/area2.png', False) + self.mArea2.setXY(700, 200) + CGame().addChild(self.mArea2) + + self.mPiece1 = Piece() + self.mPiece1.setImage('assets/images/piece1.png', False) + self.mPiece1.set_origin(CVector(350.0, 600.0)) + self.mPiece1.set_destine(CVector(435.0, 283.0)) + #self.mPiece1.setXY(700, 200) + + CGame().addChild(self.mPiece1) + def update(self): #print "menu update" CGameState.update(self) @@ -177,11 +221,17 @@ class CArea1Game1(CGameState): CGameState.destroy(self) #self.mInstructions.destroy() self.mInstructions = None - CGame().removeChild(self.mButtonPlay) + CGame().removeChild(self.mButtonBack) + CGame().removeChild(self.mArea1) + CGame().removeChild(self.mArea2) + CGame().removeChild(self.mPiece1) #self.mButtonPlay.destroy() self.mButtonBack = None self.mBackground = None - print "CMenuState destroy" + self.mArea1 = None + self.mArea2 = None + self.mPiece1 = None + print "CArea1Game1 destroy" def doEvents(self, aEvent): print aEvent.type diff --git a/src/states/CreditsState.py b/src/states/CreditsState.py index 4382fa5..994d259 100755 --- a/src/states/CreditsState.py +++ b/src/states/CreditsState.py @@ -21,8 +21,8 @@ class CCreditsState(CGameState): def init(self):
CGameState.init(self)
- self.mInstructions = CMultiLabel()
- CGame().addChild(self.mInstructions)
+ #self.mInstructions = CMultiLabel()
+ #CGame().addChild(self.mInstructions)
#print self.mX
self.mButtonPlay = CButton()
diff --git a/src/states/MenuState.py b/src/states/MenuState.py index 35074d5..829d441 100755 --- a/src/states/MenuState.py +++ b/src/states/MenuState.py @@ -29,8 +29,8 @@ class CMenuState(CGameState): def init(self):
CGameState.init(self)
- self.mInstructions = CMultiLabel()
- CGame().addChild(self.mInstructions)
+ #self.mInstructions = CMultiLabel()
+ #CGame().addChild(self.mInstructions)
#print self.mX
self.mButtonPlay = CButton()
@@ -39,7 +39,7 @@ class CMenuState(CGameState): self.mButtonPlay.font = pygame.font.Font('assets/fonts/fipps.ttf', 20)
self.mButtonPlay.center = (110, 420)
self.mButtonPlay.size = (200, 40)
- self.mButtonPlay.text = "JUGAR"
+ self.mButtonPlay.text = "A1 - Juego 1"
CGame().addChild(self.mButtonPlay)
self.mBackground = Image.loadImage('assets/images/back_menu.png', False)
|