[Cocos2d-x] Day 9 - WALL_DROP

|


 <DAY> 2016.05.25

 < WORK LIST >

 <Class> Object_Hero.cpp

 - WALL_DROP

 - Resource Work

 - State Apply



   1

  WALL_DROP


박스의 옆면의 충돌 중일 때 중력에 의해 떨어지는 힘을 0으로 만들고,

m_fAccelerator  = 0;

점프키가 눌리지 않았다면 플레이어의 y값 좌표를 내려준다.

반대로 충돌중이 아니라면( NULL 이라면 ) 상태를 DROP으로 바꿔준다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
            case WALL_DROP:
            {
                if( ST::call()->BM.CollisionCheck( DropSet(), BOX ) == NULL )
                {
                    m_iState = DROP;
                    if( vec.x == 1 ) pos.x -= 20.f;
                    else             pos.x += 20.f;
                }
                else
                {
                    if( ST::call()->BM.Raycast( pos, CGPoint(0,-1), &Hit, m_fAccelerator ) )
                        m_iState = WALK;
 
                    if!m_bJumpKeyPress )
                        pos.y -= 150 * dt;
                    
                    m_fAccelerator = 0;
                }
                break;
            }
cs


 점프 키 제어.

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
        if(GetAsyncKeyState('C') && m_bJumpKeyPress == FALSE )
        {
            if( m_iState != DROP        && 
                m_iState != JUMP        &&
                m_iState != CHAGE_JUMP  &&
                m_iState != CHAGE2_JUMP &&
                m_iState != CHAGE_DROP  &&
                m_iState != CHAGE2_DROP &&
                m_iState != JUMP_ATTACK &&
                m_iState != DROP_ATTACK )
            {
                m_bJumpKeyPress = TRUE;
 
//                ST::call()->SM.play(SND_JUMP);
 
                if( m_bAttackDown )  
                    m_iState = CHAGE_JUMP;
                else if( m_bAttackDown && m_fAttackTimeDlay >= 2.4f )
                    m_iState = CHAGE2_JUMP;
                else                 
                    m_iState = JUMP;
 
                // 대시 점프 시 점프 높이 상승.
                if( m_iPrevState == DASH       ||
                    m_iPrevState == CHAGE_DASH ||
                    m_iPrevState == CHAGE2_DASH ) 
                {
                    m_fAccelerator       = JUMPPOWER + DASH_JUMP_POWER;
                    m_bMoveSpeedIncrease = TRUE;
                }
                else if( m_iPrevState == WALL_DROP )
                {
//                    ST::call()->SM.play( SND_WALL_JUMP );
 
                    m_fAccelerator = JUMPPOWER + 100;
                    if( vec.x == -1 )
                    {
                        pos.x += 45.f;
                        pos.y += 10.f;
                    }
                    else
                    {
                        pos.x -= 45.f;
                        pos.y += 10.f;
                    }
                }
                else
                    m_fAccelerator = JUMPPOWER;
            }
        }
        else if(!GetAsyncKeyState('C')) m_bJumpKeyPress = FALSE;
cs



   2

  Resource Work




WALL_DROP


 WORK

IDLE

WALK

ATTACK

DASH

JUMP

DROP

START  

JUMP_ATTACK

DROP_ATTACK

SHOT

MIDDLES_SHOT

FULL_SHOT

WALK_ATTACK

CHAGE_IDLE

CHAGE_WALK

CHAGE_DASH

CHAGE_JUMP

CHAGE_DROP

CHAGE2_IDLE

CHAGE2_WALK

CHAGE2_DASH

CHAGE2_JUMP

CHAGE2_DROP

LADDER_UP

LADDER_DOWN

  New WALL_DROP




   3

  State Apply


WALL_DROP



 STATE APPLY

IDLE

WALK

ATTACK

DASH

JUMP

DROP

START  

JUMP_ATTACK

DROP_ATTACK

SHOT

MIDDLES_SHOT

FULL_SHOT

WALK_ATTACK

CHAGE_IDLE

CHAGE_WALK

CHAGE_DASH

CHAGE_JUMP

CHAGE_DROP

CHAGE2_IDLE

CHAGE2_WALK

CHAGE2_DASH

CHAGE2_JUMP

CHAGE2_DROP

LADDER_UP

LADDER_DOWN

  New WALL_DROP




평 가

 .난이도 : 보통

 별   점 :  

 한 마디: 플레이어의 상태가 많아서 

조절하기가 조금 난해 했다.





<Progress List> 

 - Key Control

 - Box CollisionCheck

 - Camera Scroll 

 - Player Resource Work

 Player OutPut & Animation

 New Wall_Drop  - <Complete>


<Complete List> 

  - Gravity Jump

  - MouseDrag Box Create

  - RayCast

  - File Input And Output

  BackGround Output

  - Player Output

  Bullet Output

  - Scroll Map Box

  - Player OutPut & Animation

  - Slope Move

  - Ladder

  New Wall_Drop


And