[Cocos2d-x] Day 7 - Slope Move

|


 <DAY> 2016.05.24

 < WORK LIST >

 <Class> Object_Hero.cpp

 - Slope Move

 - Resource Work

 - State Apply



   1

  Slope Move


생각해 보면 간단한 문제다.


Raycast를 바닥으로 쏜다.

Raycast가 true를 반환했을 경우 밑에 박스가 존재하는 것으므로,

박스의 높이( y값 )를 구한다.

그리고 플레이어의 높이( y값 )도 구해서

박스의 높이에서 플레이어의 높이 값을 뺀다.

그 차이가 30픽셀보다 작으면

플레이어의 높이를 박스의 높이 값 + 1값으로 붙여 넣는다.


그렇게 되면 

플레이어는 경사면을 타고 올라가는것 처럼 보이게 된다.


내려가는 경우도 마찬가지다.

플레이어 밑으로 Raycast를 쏘고 박스 및 플레이어의 높이 값을 구한 뒤

그 차이가 100픽셀 보다 작으면

플레이어의 높이를 박스의 높이 + 1값으로 붙여 넣는다.


그리고 이도 저도 아니면 그냥 플레이어를 떨어뜨리면 된다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 if( ST::call()->BM.Raycast( CollsionPos, CGPoint(vec.x, 0), &Hit, 500 ) )
 {
     if( Hit.ObTarget->rc.origin.y + Hit.ObTarget->rc.size.height - pos.y < 30.f )
         pos.y = Hit.ObTarget->rc.origin.y + Hit.ObTarget->rc.size.height + 1;
 }
 else if( ST::call()->BM.Raycast( DropSet(), CGPoint( 0-1 ), &Hit, 500 ) )
 {
     if( pos.y - (Hit.ObTarget->rc.origin.y + Hit.ObTarget->rc.size.height) < 100.f )
         pos.y = Hit.ObTarget->rc.origin.y + Hit.ObTarget->rc.size.height + 1;
 }
 else
 {
      if( ST::call()->BM.CollisionCheck( CGPoint( pos.x, pos.y - 2.f ), BOX ) == NULL )
          m_iState = DROP;                
 }
cs


그 결과는 이러하다.




   2

  Resource Work




WALK_ATTACK


CHAGE_IDLE


CHAGE_WALK



CHAGE_JUMP



CAHGE_DROP



CHAGE_DASH



CHAGE2_IDLE



CHAGE2_WALK



CHAGE2_JUMP



CAHGE2_DROP



CHAGE2_DASH





 Work

IDLE

WALK

ATTACK

DASH

JUMP

DROP

START  

JUMP_ATTACK

DROP_ATTACK

SHOT

MIDDLES_SHOT

FULL_SHOT

  New WALK_ATTACK

  New CHAGE_IDLE

  New CHAGE_WALK

  New CHAGE_DASH

  New CHAGE_JUMP

  New CHAGE_DROP

  New CHAGE2_IDLE

  New CHAGE2_WALK

  New CHAGE2_DASH

  New CHAGE2_JUMP

  New CHAGE2_DROP



   3

  State Apply




WALK_ATTACK


CHAGE_IDLE & CHAGE2_IDLE



CHAGE_WALK & CHAGE2_WALK



CHAGE_DASH & CHAGE2_DASH



CHAGE_JUMP & CHAGE2_JUMP & CHAGE_DROP & CHAGE2_DROP



 State Apply

IDLE

WALK

ATTACK

DASH

JUMP

DROP

START  

JUMP_ATTACK

DROP_ATTACK

SHOT

MIDDLES_SHOT

FULL_SHOT

  New WALK_ATTACK

  New CHAGE_IDLE

  New CHAGE_WALK

  New CHAGE_DASH

  New CHAGE_JUMP

  New CHAGE_DROP

  New CHAGE2_IDLE

  New CHAGE2_WALK

  New CHAGE2_DASH

  New CHAGE2_JUMP

  New CHAGE2_DROP


평 가

 .난이도 : 보통

 별   점 :  

 한 마디: 경사면 이동 부분을 좀더 

다듬는게 좋을 것 같다.


ps 

리소스 작업좀 그만하고 싶다.





<Progress List> 

 - Key Control

 - Box CollisionCheck

 - Camera Scroll 

 - Player Resource Work

 Player OutPut & Animation

 New Slope Move  - <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

  New Slope Move


And