<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 |
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 |
'cocos2D > 2D Project' 카테고리의 다른 글
[Cocos2d-x] Day 9 - WALL_DROP (0) | 2016.06.14 |
---|---|
[Cocos2d-x] Day 8 - Ladder (0) | 2016.06.13 |
[Cocos2d-x] Day 6 - Resource Work & Bullet Class, Manager Create (0) | 2016.06.12 |
[Cocos2d-x] Day 5 - Scroll Map Box & Player Resource Work (0) | 2016.06.12 |
[Cocos2d-x] Day 4 - BackGround & CameraScroll & File Input And Output (0) | 2016.06.09 |