Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/game/CreditsState.py
blob: b40a88a77e0ff1b3caf5c02d83a9f685030915a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# -*- coding: utf-8 -*-

import pygame
import MenuState
from api.GameState import CGameState
from api.Game import CGame
from api.Sprite import CSprite
from api.MultiLabel import CMultiLabel
import api.Image as Image

from assets.data import credits_data


class CCreditsState(CGameState):
    
    def init(self):
        CGameState.init(self)
        
        self.mBackground = Image.loadImage('assets/images/back_credits.png', False)
        CGame().setBackground(self.mBackground)
        
        self.mBsetted = False
        self.mNsetted = True
                
        self.mBackImageN = Image.loadImage('assets/images/back.png')
        self.mBackImageB = Image.loadImage('assets/images/back_big.png')
        
        self.mButtonBack = CSprite(1170, 30)
        self.mButtonBack.setRegistrationPointOffset(22, 22)
        self.mButtonBack.setImage(self.mBackImageN)
        CGame().addChild(self.mButtonBack)
        
        text = ''
        for l in credits_data.CREDITS:
            text = text + '\n' + unicode(l, 'UTF-8')
        
        self.mCredits = CMultiLabel()
        self.mCredits.bgColor = (255, 125, 50)
        self.mCredits.font = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 28)
        self.mCredits.center = (600, 300)
        self.mCredits.size = (600, 400)
        self.mCredits.text = text
        self.mCredits._update_image()
        CGame().addChild(self.mCredits)
        
        
    def update(self):
        CGameState.update(self)
        
        if self.mButtonBack.mouseOver():
            if not(self.mBsetted):
                self.mBsetted = True
                self.mNsetted = False
                self.mButtonBack.setRegistrationPointOffset(27, 27)
                self.mButtonBack.setImage(self.mBackImageB)
        else:
            if not(self.mNsetted):
                self.mBsetted = False
                self.mNSetted = True
                self.mButtonBack.setRegistrationPointOffset(22, 22)
                self.mButtonBack.setImage(self.mBackImageN)
        
        if self.mButtonBack.clicked():
            ms = MenuState.CMenuState()
            CGame().setState(ms)
        
    def destroy(self):
        CGameState.destroy(self)
        CGame().removeChild(self.mButtonBack)
        CGame().removeChild(self.mCredits)
        self.mButtonBack = None
        self.mBackground = None