개발 일지/멍구 마리오 썸네일형 리스트형 참고 사이트 [충돌처리때문에 검색하다가] https://www.raywenderlich.com/15230/how-to-make-a-platform-game-like-super-mario-brothers-part-1https://www.raywenderlich.com/15267/how-to-make-a-platform-game-like-super-mario-brothers-part-2https://www.raywenderlich.com/29458/how-to-make-a-tile-based-game-with-cocos2d-2-xhttp://info.sonicretro.org/SPG:Solid_Tileshttp://higherorderfun.com/blog/2012/05/20/the-guide-to-implementing-2d-platformers.. 더보기 cocos2d-x Sprite에 렉트 표시하기 (Sprite rect 출력) cocos2d-x에서 충돌처리 구현간 스프라이트에 렉트를 표시하고 싶을때가 있다. ccConfig.h 에 CC_SPRITE_DEBUG_DRAW 0 => 1 로 변경 설명)CCSprite.cpp를 살펴보면 draw()함수에 #if 전처리기로 이렇게 처리되있다. 123456789101112131415161718192021#if CC_SPRITE_DEBUG_DRAW _debugDrawNode->clear(); auto count = _polyInfo.triangles.indexCount/3; auto indices = _polyInfo.triangles.indices; auto verts = _polyInfo.triangles.verts; for(ssize_t i = 0; i drawLine(Vec2(from.. 더보기 cocos2d-x intersectrect 함수 추가 구현 기존 intersectRect 함수는 충돌여부만 판정해줘서 충돌영역을 알려주는 Rect를 출력값으로 내보낼 수 있게 추가 구현했다. bool Rect::intersectsRect(Rect * pOut, const Rect & rect){if (intersectsRect(rect)){ float fRectLeft = std::max(getMinX(), rect.getMinX());float fRectBottom = std::max(getMinY(), rect.getMinY());float fRectRight = std::min(getMaxX(), rect.getMaxX());float fRectTop = std::min(getMaxY(), rect.getMaxY()); *pOut = { fRectLeft,.. 더보기 cocos2d-x 장면전환간 윈도우에선 안터지는데 안드로이드에서 터지는 문제 이상하게 cocos2d-x 장면 전환간 터질 이유가 없는데 계속 터짐. 윈도우에선 안터지고 안드로이드에서 터졌고, 디버깅을 해보니 랜덤으로 이곳저곳에서 fatal address로 이상한 주소 참조문제로 계속 터졌다. 결국 원인은 화면전환시 레이어 소멸자가 호출되고, 소멸자 부분에 생성해놓은 객체를 removeChild가 아닌 직접 delete m_pPlayer; 식으로 지우고 있던게 문제였다. Sprite클래스를 상속받은 Player객체를 addChild로 레이어에 '자식'으로 추가해놓고, 자식에선 안지우고 delete로 직접 객체 할당해제를 실시한거다. 그러다보니 코코스 엔진 내부적으로 꼬인건지 윈도우에선 안터지나 폰에서 터짐.. 결국엔 해결! ㅠㅠ 더보기 cocos2d-x GL::useProgram(_program) 액세스 위반 GL::useProgram(_program); 에서 계속 액세스위반이 발생한다고 떴다._program 변수 내용이 nullptr이라 발생한 문제였다. 알고보니 씬만들고 레이어추가를 할때, 레이어는 LayerColor상속시켜놓고,Layer Init하는 부분에서 Layer::init() 호출해서 였다. LayerColor상속 (public cocos2d::LayerColor) 이면 if (!LayerColor::initWithColor(Color4B(0,0,0,0))) 이런식으로 LayerColor::initWithColor 호출! Layer상속이면 Layer::init 호출! 더보기 이전 1 다음