diff options
-rw-r--r-- | .settings/org.eclipse.core.resources.prefs | 2 | ||||
-rwxr-xr-x | src/api/Math.py | 23 | ||||
-rw-r--r-- | src/api/Sprite.py | 2 | ||||
-rw-r--r-- | src/assets/fonts/DejaVuSans-Bold.ttf | bin | 0 -> 672300 bytes | |||
-rw-r--r-- | src/assets/fonts/DejaVuSans.ttf | bin | 0 -> 720012 bytes | |||
-rw-r--r-- | src/assets/fonts/DejaVuSerif-Bold.ttf | bin | 0 -> 341072 bytes | |||
-rw-r--r-- | src/assets/fonts/DejaVuSerif.ttf | bin | 0 -> 363200 bytes | |||
-rw-r--r-- | src/assets/fonts/fipps.ttf | bin | 74264 -> 0 bytes | |||
-rw-r--r-- | src/assets/fonts/goodfoot.ttf | bin | 64760 -> 0 bytes | |||
-rw-r--r-- | src/assets/images/selectArea/area1Normal.png | bin | 0 -> 119470 bytes | |||
-rw-r--r-- | src/assets/images/selectArea/area1Selected.png | bin | 0 -> 106083 bytes | |||
-rw-r--r-- | src/assets/images/selectArea/backgroundSelectArea.png | bin | 0 -> 1439326 bytes | |||
-rw-r--r-- | src/game/Area1Game1.py | 2 | ||||
-rw-r--r-- | src/game/Area1Game3.py | 10 | ||||
-rw-r--r-- | src/game/Area1Game7.py | 6 | ||||
-rw-r--r-- | src/game/CreditsState.py | 2 | ||||
-rw-r--r-- | src/game/MenuState.py | 21 | ||||
-rw-r--r-- | src/game/SelectAreaState.py | 95 |
18 files changed, 145 insertions, 18 deletions
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs index e3decf9..a969971 100644 --- a/.settings/org.eclipse.core.resources.prefs +++ b/.settings/org.eclipse.core.resources.prefs @@ -2,6 +2,7 @@ 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/Math.py=utf-8 encoding//src/api/Mouse.py=utf-8 encoding//src/api/Sprite.py=utf-8 encoding//src/api/Vector.py=utf-8 @@ -12,3 +13,4 @@ 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 +encoding//src/game/SelectAreaState.py=utf-8 diff --git a/src/api/Math.py b/src/api/Math.py index 196a736..8b8eefc 100755 --- a/src/api/Math.py +++ b/src/api/Math.py @@ -49,3 +49,26 @@ def degToRad(aAngle): def dist(ax1, ay1, ax2, ay2):
return math.sqrt((ax2-ax1)**2 + (ay2-ay1)**2)
+
+# determine if a point is inside a given polygon or not
+# Polygon is a list of (x,y) pairs.
+# http://www.ariel.com.au/a/python-point-int-poly.html
+# http://local.wasp.uwa.edu.au/~pbourke/geometry/insidepoly/
+def pointInsidePolygon(x, y, poly):
+
+ n = len(poly)
+ inside =False
+
+ p1x,p1y = poly[0]
+ for i in range(n+1):
+ p2x,p2y = poly[i % n]
+ if y > min(p1y,p2y):
+ if y <= max(p1y,p2y):
+ if x <= max(p1x,p2x):
+ if p1y != p2y:
+ xinters = (y-p1y)*(p2x-p1x)/(p2y-p1y)+p1x
+ if p1x == p2x or x <= xinters:
+ inside = not inside
+ p1x,p1y = p2x,p2y
+
+ return inside
\ No newline at end of file diff --git a/src/api/Sprite.py b/src/api/Sprite.py index 201f9a3..f260e09 100644 --- a/src/api/Sprite.py +++ b/src/api/Sprite.py @@ -71,7 +71,7 @@ class CSprite(pygame.sprite.Sprite): #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)
- self.font = pygame.font.Font('assets/fonts/goodfoot.ttf', 30)
+ self.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 30)
self.mImageMaster = self.font.render(">sprite>", True, (0, 0,0), (0xFF, 0xFF, 0xFF))
# Set the image of the sprite.
diff --git a/src/assets/fonts/DejaVuSans-Bold.ttf b/src/assets/fonts/DejaVuSans-Bold.ttf Binary files differnew file mode 100644 index 0000000..0f4d5e9 --- /dev/null +++ b/src/assets/fonts/DejaVuSans-Bold.ttf diff --git a/src/assets/fonts/DejaVuSans.ttf b/src/assets/fonts/DejaVuSans.ttf Binary files differnew file mode 100644 index 0000000..27cff47 --- /dev/null +++ b/src/assets/fonts/DejaVuSans.ttf diff --git a/src/assets/fonts/DejaVuSerif-Bold.ttf b/src/assets/fonts/DejaVuSerif-Bold.ttf Binary files differnew file mode 100644 index 0000000..afa2d5e --- /dev/null +++ b/src/assets/fonts/DejaVuSerif-Bold.ttf diff --git a/src/assets/fonts/DejaVuSerif.ttf b/src/assets/fonts/DejaVuSerif.ttf Binary files differnew file mode 100644 index 0000000..ed53a29 --- /dev/null +++ b/src/assets/fonts/DejaVuSerif.ttf diff --git a/src/assets/fonts/fipps.ttf b/src/assets/fonts/fipps.ttf Binary files differdeleted file mode 100644 index 504d742..0000000 --- a/src/assets/fonts/fipps.ttf +++ /dev/null diff --git a/src/assets/fonts/goodfoot.ttf b/src/assets/fonts/goodfoot.ttf Binary files differdeleted file mode 100644 index a7a1e3b..0000000 --- a/src/assets/fonts/goodfoot.ttf +++ /dev/null diff --git a/src/assets/images/selectArea/area1Normal.png b/src/assets/images/selectArea/area1Normal.png Binary files differnew file mode 100644 index 0000000..cb60af4 --- /dev/null +++ b/src/assets/images/selectArea/area1Normal.png diff --git a/src/assets/images/selectArea/area1Selected.png b/src/assets/images/selectArea/area1Selected.png Binary files differnew file mode 100644 index 0000000..b9250a6 --- /dev/null +++ b/src/assets/images/selectArea/area1Selected.png diff --git a/src/assets/images/selectArea/backgroundSelectArea.png b/src/assets/images/selectArea/backgroundSelectArea.png Binary files differnew file mode 100644 index 0000000..8824b0b --- /dev/null +++ b/src/assets/images/selectArea/backgroundSelectArea.png diff --git a/src/game/Area1Game1.py b/src/game/Area1Game1.py index 92eb63b..a85715b 100644 --- a/src/game/Area1Game1.py +++ b/src/game/Area1Game1.py @@ -165,7 +165,7 @@ class CArea1Game1(CGameState): self.mButtonBack = CButton() #TODO: Create a function to create image. self.mButtonBack.set_bgColor((0x99, 0x99, 0x66)) - self.mButtonBack.font = pygame.font.Font('assets/fonts/fipps.ttf', 20) + self.mButtonBack.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 20) self.mButtonBack.set_center((110, 650)) self.mButtonBack.set_size((200, 40)) self.mButtonBack.set_text(_('Volver')) diff --git a/src/game/Area1Game3.py b/src/game/Area1Game3.py index a12da10..a79568e 100644 --- a/src/game/Area1Game3.py +++ b/src/game/Area1Game3.py @@ -44,7 +44,7 @@ class CArea1Game3(CGameState): self.mButtonBack = CButton() self.mButtonBack.set_bgColor((0x99, 0x99, 0x66)) - self.mButtonBack.font = pygame.font.Font('assets/fonts/fipps.ttf', 20) + self.mButtonBack.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 20) self.mButtonBack.set_center((110, 650)) self.mButtonBack.set_size((200, 40)) self.mButtonBack.set_text(_('Volver')) @@ -52,7 +52,7 @@ class CArea1Game3(CGameState): self.mLabelTitle = CLabel() self.mLabelTitle.set_bgColor((0x99, 0x50, 0x50)) - self.mLabelTitle.font = pygame.font.Font('assets/fonts/fipps.ttf', 15) + self.mLabelTitle.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 15) self.mLabelTitle.set_center((600, 100)) self.mLabelTitle.set_size((800, 40)) self.mLabelTitle.set_text(_('Cuando un niño se desarrolla pasan las siguientes cosas:')) @@ -60,7 +60,7 @@ class CArea1Game3(CGameState): self.mLabelQuestion = CLabel() self.mLabelQuestion.set_bgColor((0x99, 0x50, 0x99)) - self.mLabelQuestion.font = pygame.font.Font('assets/fonts/fipps.ttf', 13) + self.mLabelQuestion.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 13) self.mLabelQuestion.set_center((600, 200)) self.mLabelQuestion.set_size((800, 40)) self.mLabelQuestion.set_text('') @@ -71,7 +71,7 @@ class CArea1Game3(CGameState): self.mButtonTrue = CButton() self.mButtonTrue.set_bgColor((0x99, 0x99, 0x66)) - self.mButtonTrue.font = pygame.font.Font('assets/fonts/fipps.ttf', 20) + self.mButtonTrue.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 20) self.mButtonTrue.set_center((460, 300)) self.mButtonTrue.set_size((200, 40)) self.mButtonTrue.set_text(_('Verdadero')) @@ -79,7 +79,7 @@ class CArea1Game3(CGameState): self.mButtonFalse = CButton() self.mButtonFalse.set_bgColor((0x99, 0x99, 0x66)) - self.mButtonFalse.font = pygame.font.Font('assets/fonts/fipps.ttf', 20) + self.mButtonFalse.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 20) self.mButtonFalse.set_center((740, 300)) self.mButtonFalse.set_size((200, 40)) self.mButtonFalse.set_text(_('Falso')) diff --git a/src/game/Area1Game7.py b/src/game/Area1Game7.py index 1a6f32f..90c90f1 100644 --- a/src/game/Area1Game7.py +++ b/src/game/Area1Game7.py @@ -180,7 +180,7 @@ class CArea1Game7(CGameState): self.mButtonBack = CButton() #TODO: Create a function to create image. self.mButtonBack.set_bgColor((0x99, 0x99, 0x66)) - self.mButtonBack.font = pygame.font.Font('assets/fonts/fipps.ttf', 20) + self.mButtonBack.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 20) self.mButtonBack.set_center((110, 650)) self.mButtonBack.set_size((200, 40)) self.mButtonBack.set_text(_('Volver')) @@ -220,14 +220,14 @@ class CArea1Game7(CGameState): # Label with the Help (for mouseover) self.mHelp01 = CLabel() self.mHelp01.bgColor = (0x99, 0x99, 0x66) - self.mHelp01.font = pygame.font.Font('assets/fonts/fipps.ttf', 20) + self.mHelp01.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 20) self.mHelp01.set_center((914, 188)) self.mHelp01.set_size((500, 280)) self.mHelp01.set_text(self.dic_help[1]) self.mHelp02 = CLabel() self.mHelp02.bgColor = (0x99, 0x99, 0x66) - self.mHelp02.font = pygame.font.Font('assets/fonts/fipps.ttf', 20) + self.mHelp02.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 20) self.mHelp02.set_center((914, 188)) self.mHelp02.set_size((500, 280)) self.mHelp02.set_text(self.dic_help[2]) diff --git a/src/game/CreditsState.py b/src/game/CreditsState.py index 9982f8b..e4b79f5 100644 --- a/src/game/CreditsState.py +++ b/src/game/CreditsState.py @@ -29,7 +29,7 @@ class CCreditsState(CGameState): self.mButtonBack = CButton() self.mButtonBack.set_bgColor((0x99, 0x99, 0x66)) - self.mButtonBack.font = pygame.font.Font('assets/fonts/fipps.ttf', 20) + self.mButtonBack.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 20) self.mButtonBack.set_center((300, 300)) self.mButtonBack.set_size((200, 40)) self.mButtonBack.set_text("Volver") #_('BACK Credits') diff --git a/src/game/MenuState.py b/src/game/MenuState.py index 7ede0b7..e0bd828 100644 --- a/src/game/MenuState.py +++ b/src/game/MenuState.py @@ -12,6 +12,10 @@ import api.Button from api.Button import CButton import game.CreditsState from CreditsState import * + +import game.SelectAreaState +from SelectAreaState import * + import api.Image as Image import game.Area1Game1 @@ -30,6 +34,7 @@ class CMenuState(CGameState): mBackground = None mInstructions = None #mX = 10 + mButtonA1G1= None mButtonA1G3 = None @@ -51,7 +56,7 @@ class CMenuState(CGameState): self.mButtonCredits = CButton() self.mButtonCredits.bgColor = (0x99, 0x99, 0x66) - self.mButtonCredits.font = pygame.font.Font('assets/fonts/fipps.ttf', 20) + self.mButtonCredits.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 20) self.mButtonCredits.set_center((600, 420)) self.mButtonCredits.set_size((200, 40)) self.mButtonCredits.set_text('Créditos') @@ -60,7 +65,7 @@ class CMenuState(CGameState): 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.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 28) self.mButtonPlay.set_center((600, 50)) self.mButtonPlay.set_size((200, 40)) self.mButtonPlay.set_text('Jugar') @@ -68,7 +73,7 @@ class CMenuState(CGameState): self.mButtonHelp = CButton() self.mButtonHelp.bgColor = (0x99, 0x99, 0x66) - self.mButtonHelp.font = pygame.font.Font('assets/fonts/fipps.ttf', 32) + self.mButtonHelp.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 32) self.mButtonHelp.set_center((600, 470)) self.mButtonHelp.set_size((200, 40)) self.mButtonHelp.set_text('Ayuda') @@ -76,7 +81,7 @@ class CMenuState(CGameState): self.mButtonExit = CButton() self.mButtonExit.bgColor = (0x99, 0x99, 0x66) - self.mButtonExit.font = pygame.font.Font('assets/fonts/fipps.ttf', 32) + self.mButtonExit.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 32) self.mButtonExit.set_center((600, 520)) self.mButtonExit.set_size((200, 40)) self.mButtonExit.set_text('Salir') @@ -85,7 +90,7 @@ class CMenuState(CGameState): 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.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 20) self.mButtonA1G1.set_center((110, 420)) self.mButtonA1G1.set_size((200, 40)) self.mButtonA1G1.set_text('A1 - Juego 1') @@ -93,7 +98,7 @@ class CMenuState(CGameState): self.mButtonA1G3 = CButton() self.mButtonA1G3.bgColor = (0x99, 0x99, 0x66) - self.mButtonA1G3.font = pygame.font.Font('assets/fonts/fipps.ttf', 20) + self.mButtonA1G3.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 20) self.mButtonA1G3.set_center((110, 470)) self.mButtonA1G3.set_size((200, 40)) self.mButtonA1G3.set_text('A1 - Juego 3') @@ -101,7 +106,7 @@ class CMenuState(CGameState): self.mButtonA1G7 = CButton() self.mButtonA1G7.bgColor = (0x99, 0x99, 0x66) - self.mButtonA1G7.font = pygame.font.Font('assets/fonts/fipps.ttf', 20) + self.mButtonA1G7.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 20) self.mButtonA1G7.set_center((110, 520)) self.mButtonA1G7.set_size((200, 40)) self.mButtonA1G7.set_text('A1 - Juego 7') @@ -122,6 +127,8 @@ class CMenuState(CGameState): elif self.mButtonPlay.clicked(): print "clicked play" + selectArea = CSelectAreaState() + CGame().setState(selectArea) # game = CLevelState() # CGame().setState(game) diff --git a/src/game/SelectAreaState.py b/src/game/SelectAreaState.py new file mode 100644 index 0000000..7779544 --- /dev/null +++ b/src/game/SelectAreaState.py @@ -0,0 +1,95 @@ +# -*- 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 api.Sprite +from api.Sprite import CSprite + +import api.Image as Image + +from api.Mouse import * + +import api.Math as CMath + +import pygame + +class CSelectAreaState(CGameState): + + mBackground = None + mInstructions = None + #mX = 10 + mButtonBack = None + + mCurrentSelectedArea = 0 + + mArea1 = None + + mFrameImageArea1 = [] + + AREA1_POLYGON = [(139,330), (299,265), (422,324), (267,400)] + + def init(self): + CGameState.init(self) + #self.mInstructions = CMultiLabel() + #CGame().addChild(self.mInstructions) + #print self.mX + + self.mCurrentSelectedArea = 0 + + self.mButtonBack = CButton() + self.mButtonBack.set_bgColor((0x99, 0x99, 0x66)) + self.mButtonBack.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 20) + self.mButtonBack.set_center((100, 100)) + self.mButtonBack.set_size((200, 40)) + self.mButtonBack.set_text("Volver") #_('BACK Credits') + CGame().addChild(self.mButtonBack) + + self.mBackground = CImage.loadImage('assets/images/selectArea/backgroundSelectArea.png', False) + CGame().setBackground(self.mBackground) + + self.mArea1 = CSprite() + self.mArea1.setXY(105,222) + self.mFrameImageArea1.append(Image.loadImage('assets/images/selectArea/area1Normal.png', True)) + self.mFrameImageArea1.append(Image.loadImage('assets/images/selectArea/area1Selected.png', True)) + self.mArea1.setImage(self.mFrameImageArea1[0]) + CGame().addChild(self.mArea1) + + def update(self): + #print "menu update" + CGameState.update(self) + + if self.mButtonBack.clicked(): + print "clicked back......" + ms = MenuState.CMenuState() + CGame().setState(ms) + + if (CMath.pointInsidePolygon(CMouse().getX(), CMouse().getY(), self.AREA1_POLYGON)): + self.mArea1.setImage(self.mFrameImageArea1[1]) + else: + self.mArea1.setImage(self.mFrameImageArea1[0]) + + #def render(self): + # CGameState.render(self) + # print "CMenuState render" + + def destroy(self): + CGameState.destroy(self) + CGame().removeChild(self.mButtonBack) + self.mButtonBack = None + CGame().removeChild(self.mArea1) + self.mArea1.destroy() + self.mArea1 = None + self.mBackground = None + + def doEvents(self, aEvent): + print aEvent.type
\ No newline at end of file |