<DAY> 2016.05.19 |
|||||||||
< WORK LIST > | |||||||||
<Class> Object_Box.cpp & Box_Manager.cpp | |||||||||
- Box Create & Box CollisionCheck |
|||||||||
- Box_Manager.h & Box_Manager.cpp |
|||||||||
|
1 |
Box Create & Box CollisionCheck |
충돌 체크 함수
1 2 3 4 5 6 7 | bool Object_Box::CollisionCheck( CGPoint _pos ) { CGRect rc; rc.origin = ccp( this->getPosition().x, this->getPosition().y ); rc.size = CGSize( 100, 100 ); return CGRect::CGRectContainsPoint( rc, _pos ); } | cs |
박스 이미지 생성
그리고, 충돌체크 함수를 하나 만들었다.
기본적으로 박스의 위치, 사이즈가 들어있다.
매개 변수로는 플레이어의 위치를 받는다.
1 2 3 4 5 6 7 8 9 | bool Object_Box::init( CGSize _size ) { if( !CCSprite::initWithFile("TestImage/BOX.png") ) return false; this->setAnchorPoint( ccp(0,0) ); this->setScaleX( _size.width / 100 ); this->setScaleY( _size.height / 100 ); return true; } | cs |
2 |
Box_Manager.h & Box_Manager.cpp |
여러개의 박스를 관리하기 위한 박스 매니저 클래스 생성.
1 2 3 4 5 6 7 8 9 10 | #define MAXBOX 50 class Box_Manager : public CCSprite{ public: Object_Box * m_pBox[MAXBOX]; void init(){ memset( m_pBox, NULL, sizeof(m_pBox) ); } Object_Box * AddBox( CGPoint _pos ); Object_Box * CollisionCheck( CGPoint _pos ); }; | cs |
AddBox 함수를 만들어서 씬_타워 init에서 박스를 추가한다.
화면에 실질적으로 박스가 추가된다.
그리고 충돌체크 함수를 만들었다.
플레이어가 실질적으로 충돌 했을 때 부딪힌 블럭을 for문을 통해 검사하여 플레이어의
위치를 매개변수로 보내고
부딪힌 블럭을 반환 받는다.
만약 부딪힌 블럭이 충돌되지 않았을 때 if( Box == NULL ),
setPosition을 하지 않으 므로써
플레이어가 박스 안으로 들어가지 않게 된다.
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 | Object_Box * Box_Manager::AddBox( CGPoint _pos ) { for(int i = 0; i < MAXBOX; i++) { if( m_pBox[i] == NULL ) { m_pBox[i] = new Object_Box; m_pBox[i]->init( CGSize(50,10) ); m_pBox[i]->setAnchorPoint( ccp( 0, 0 ) ); m_pBox[i]->setPosition( _pos ); return m_pBox[i]; } } return NULL; } Object_Box * Box_Manager::CollisionCheck( CGPoint _pos ) { for(int i = 0; i < MAXBOX; i++ ) { if( m_pBox[i] == NULL ) continue; if( m_pBox[i]-> CollisionCheck( _pos )) return m_pBox[i]; } return NULL; } | cs |
결과
평 가 |
.난이도 : 쉬움 별 점 : ★★☆☆☆ 한 마디: 맵의 토대 마련. |
<Progress List> |
- Key Control |
- Gravity Jump |
- Box Create |
- Box CollisionCheck |
<Complete List> |
- No Data |
- No Data |
- No Data |
- No Data |
'cocos2D > 2D Project' 카테고리의 다른 글
[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 |
[Cocos2d-x] Day 3 - MouseDrag Box Create & RayCast Collision (0) | 2016.06.08 |
[Cocos2d-x] Day 1 - KeyInput & Gravity Jump (0) | 2016.06.08 |