Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/states/Area1Game1.py
blob: f00b409483ecd4df9f0c41d934e62d381c5cb2f4 (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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104

import api.Sprite
from api.Sprite import CSprite

#Piece class hereda de CSprite
class Piece(CSprite):

    STATE_STALE = 0
    STATE_DRAG = 1
    STATE_ADJUST = 2
    STATE_RETURN = 3
    STATE_OK = 4

    mState = STATE_NONE

    MIN_DISTANCE = 40

    TIME_RETURN = 15
    TIME_ADJUST = 7.5

    RADIUS_COLLISION = 10


    def init(self, aXOrigin, aYOrigin, aXDest, aYDest):
        setState(STATE_STALE)

        mXOrigin = aXOrigin
        mYOrigin = aYOrigin
        mXDest = aXDest
        mYDest = aYdest

        setMaxVel(10, 10)

        #image = ....


    def update(self):

        if (aState == STATE_STALE):
            if (mouse se cliquea encima del objeto):
                self.setState(STATE_DRAG)
                return

        if (aState = STATE_DRAG):
            x = mouse x
            y = mouse y
        if (se suelta el mouse):
            if CMath.dist(x, y, mXDest, mYDest) < MIN_DISTANCE):
                self.setState(STATE_ADJUST)
            else:
                self.setState(STATE_RETURN)


        if (aState == STATE_ADJUST):
            if (CMath.dist(x, y, mXDest, mYDest) < RADIUS_COLLISION):
                self.setState(STATE_OK)

        if (aState == STATE_RETURN):
            if (CMath.dist(x, y, mXOrigin, mYOrigin) < RADIUS_COLLISION):
                play(Sonido mal)
                self.setState(STATE_STALE)
        if (aState == STATE_OK):
            return


    def render(self):
        pass


    def destroy(self):
        pass
        #eliminar la imagen creada


    def setState(aState):

        if (aState == STATE_STALE):
            x = mXOrigin
            y = mYOrigin
            velX = 0
            velY = 0
        if (aState = STATE_DRAG):
            velX = 0
            velY = 0
        if (aState == STATE_ADJUST):
            velX = (mXDest - x) / TIME_ADJUST
            velY = (mXDest - y) / TIME_ADJUST
        if (aState == STATE_RETURN):
            velX = (mXOrigin - x) / TIME_RETURN
            velY = (mXOrigin - y) / TIME_RETURN
            if (aState == STATE_OK):
                x = mXDest
                y = mYDest
                xVel = 0
                yVel = 0
                #play(Sonido OK)


        mState = aState

    def getState(self):
        return mState