달력

5

« 2024/5 »

  • 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

- 충돌체크

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
:
Posted by 웽웽