2014. 11. 19. 15:30
[D_007] 충돌체크 및 예제 DATA_OLD/Cocos2d-x 기능성 게임 개발과정2014. 11. 19. 15:30
- 충돌체크
getContentSize()함수를 이용하여 객체의 크기(width, height)를, getPosition()함수로 객체의 좌표를 가져와서 계산한 값을 통해, 터치가 해당 좌표에 속하는지 안속하는지를 확인한 뒤 동작하게 하는 식으로 구현함.
if (location.x > (pos.x - (size.width / 2)) && location.x < (pos.x + (size.width / 2)) && location.y >(pos.y - (size.height / 2)) && location.y < (pos.y + (size.height / 2)) )
{
spr->runAction(ScaleBy::create(0.5f, 1.2));
}
//터치가 스프라이트의 범위 내에 속하면 크기를 1.2배만큼 키워주는 기능
//단, 해당 스프라이트의 크기가 커진 이후에도 처음 크기의 범위만큼만 적용됨.
위의 이 작업을 훨씬 간단하게 하는 방법
Rect rectSpr = spr->getBoundingBox(); //spr의 영역을 Rect형 rectSpr에 담음
if (rectSpr.containsPoint(location)) //location의 좌표가 포함되는지 확인
{
spr->runAction(ScaleBy::create(0.3f, 1.2));
}
//이렇게하면 훨씬 안전하고 확실하다
//그리고 스프라이트가 커지고 나서도 그 영역을 확인할 수 있다.
'DATA_OLD > Cocos2d-x 기능성 게임 개발과정' 카테고리의 다른 글
[D_008] 비행기 게임 by touch event (0) | 2014.11.20 |
---|---|
[D_007] 터치 판정 예제 (0) | 2014.11.19 |
[D_007] Touch event (0) | 2014.11.19 |
[D_006] 비행기 게임 예제 (0) | 2014.11.19 |
[D_005] Call Function (0) | 2014.11.17 |