본문 바로가기

분류 전체보기75

6. STD::SORT STD::SORT ▼ 관련 개념 Loop & Template & STD ▼ 구현 코드 #include template bool Compare(T lhs, T rhs) { return (lhs < rhs); } int main() { std::array iArr = { 5, 4, 3, 2, 1 }; std::sort(iArr.begin(), iArr.end(), Compare); return (0); } CPP A.11에서 사용할 수 있는 std::sort를 사용한 방법이다. A.11를 지원하는 CPP 컴파일러라면 대부분의 경우 프로그래머가 직접 구현한 정렬 함수에 비해서 높은 성능을 낸다. (한가지 정렬법으로 구현된게 아니라 경우에 따라 최적의 방법으로 바꾸는 방식으로 되어있다.) 다른 알고리즘 문제를 .. 2021. 1. 27.
0. 개발 환경 설정 Cocos2D-X 설치하기 Cocos2D-X는 가장 최근 버전 4.0(2019.12.04)이후로 사실상 유산(Legacy) 프로젝트가 되었다. Cocos 프로젝트의 유지보수를 주도하는 추콩(chukong) 스튜디오가 Cocos Studio를 중심으로 Cocos를 개발하기로 결정했기 때문이다. Cocos Studio는 기존의 Cocos2D-X와 같이 오픈 소스인데다 유니티와 언리얼과 같이 접근성이 매우 놓아졌다. 자바스크립트를 스크립트 언어로 채택하면서 컴파일 없이 게임을 개발할 수 있을 뿐 아니라 내부적으로는 C++로 작성되어 있어서 성능 역시 기존의 Cocos2D-X와 비교해도 손색이 없다. 지금도 C++을 사용해서 게임 제작 실습하기엔 Cocos2D-X로 충분하지만 외국 포럼에서는 C++을 공부하려면.. 2021. 1. 26.
24. 클라스 템플릿(Class Template) 주조(Template)는 이름에서도 알 수 있다시피 찍어낼 수 있는 틀을 만들 수 있는 기능이다. 템플릿을 이용한 함수는 /SUMMORIZE에서 계속 사용하고 있기 때문에 클라스의 경우를 살펴보자. 클라스 템플릿(Class Template) ▼ 헤더파일(.h/.hpp) 파일에 모두 들어가야한다. #ifndef __POINT2D_H__ #define __POINT2D_H__ template class Point2D { private: T m_x; T m_y; public: Point2D(T _x, T _y); ~Point2D(); void SetPoint2D(T _x, T _y); T GetX(); T GetY(); }; template Point2D::Point2D(T _x, T _y) { m_x = _.. 2021. 1. 26.
23. 상속(Inheritance) CPP에서 클라스를 더욱 강력한 존재로 바꿔주는 개념인 상속은 실제 영어권에서는 { 계승 }이란 뜻으로 사용된다고 한다. 이름 그대로 자식 클라스가 부모 클라스를 계승해오는 개념으로 게임 개발 속도를 크게 올려준다. 이번엔 조금은 긴 코드를 통해서 이해해보자. Private, Protected, Public ▼ 간단한(?) 클라스 상속 예시 코드 class Parent { private: int parentPrivateValue; protected: int parentProtectedValue; public: int parentPublicValue; public: Parent() { parentPrivateValue = 1; parentProtectedValue = 2; parentPublicValue .. 2021. 1. 26.