본문 바로가기

전체 글

(168)
간단한 클래스멤버함수 콜백 C++에서 클래스멤버함수포인터를 직접 쓰는 대신 c++11에서 추가된 std::function 으로 간단하게 콜백을 구현할 수 있다.(근데 이게 cygwin에서는 안먹히네요. 다 뜯어고쳤잖아잉~ ㅠㅠ) 굵은색을 주의깊게 살펴보자 #ads_1#include #include using namespace std; class Child{ private: typedef std::function func1; //인수가 없는것 typedef std::function func2; //인수가 있는것 func1 onHandler1; func2 onHandler2; public: void setHandler1(func1 f){ onHandler1 = std::move(f); } void setHandler2(func2 f)..
미사일 터렛을 터치한 곳쪽으로 바라보게 회전하기 미사일터렛을 터치한 곳을 바라보도록 회전시키는 부분이다. 산수도 제대로 공부 안 한 덕에 이해가 빨리 안되어서 정리해 둔다.#ads_1// location //터치한 좌표 // player // 터렛 //shootVector = 터치좌표 - 터렛좌표 CCPoint shootVector = ccpSub(location, player->getPosition()); //좌표값으로 각도를 구한다(라디안값으로 리턴됨) float radAngle = ccpToAngle(shootVector); //라디안값을 degree로 변환한다. (목표각도) float degreeAngle = CC_RADIAN_TO_DEGREES(-1 * radAngle); //현재각도와 목표각도의 각도차이를 구한다. //CCRotateTo 액..
cocos2d-x 클래스 다이어그램 Cocos2d-x Class Diagram클래스 계층도가 궁금해 몇시간들여 분석해 봤습니다. 2.1.4 기준입니다.클릭해서 보세요. #ads_1#ads_1
visual studio 에서 CCLog 출력하기 Visual Studio 에서 CCLog 출력하기Visual Studio 에서 디폴트로 만들어지는 프로젝트로 CCLog를 실행하면 출력되지 않는다.왜냐하면 CCLog는 printf 함수를 사용해 콘솔창에 결과를 찍는 함수인데 main.cpp의 진입함수가 윈도우즈의 _tWinMain() 함수로 되어 있어 콘솔창이 나타나지 않고 실행되기 때문이다. 아래처럼 main.cpp 의 내용을 바꾸어 준다.#ads_1#include "main.h" #include "AppDelegate.h" #include "CCEGLView.h" USING_NS_CC; // uncomment below line, open debug console // #define USE_WIN32_CONSOLE /* 모두 주석처리한다 int AP..
';'이(가) 'XXX' 식별자 앞에 없습니다. ';'이(가) 'XXX' 식별자 앞에 없습니다. 원인은 사용중인 클래스를 인식할 수 없어서이다아래 세가지를 검토해본다#ads_11. 필요한 헤더파일을 include 했는가?2. 헤더파일의 include 순서가 잘못되지 않았는가?2. 사용중인 클래스의 name space를 선언했는가? #ads_1
build_native.sh 에서 새로운 클래스 인식을 못할때 해당 프로젝트폴더에서 proj.android 폴더안에 Android.mk 파일을 에디터로 열어본다.아래처럼 cpp파일을 추가하는 부분이 있다.#ads_1LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := game_shared LOCAL_MODULE_FILENAME := libgame LOCAL_SRC_FILES := hellocpp/main.cpp \ ../../Classes/AppDelegate.cpp \ ../../Classes/HelloWorldScene.cpp \ ../../Classes/TouchPoint.cpp LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes LOCAL_WHOLE_STATI..
cocos2dx를 비주얼스튜디오에서 작업하기 위한 세팅 요약정리 #ads_11. JDK 설치한다설치 후 Path 설정JAVA_HOME : jdk루트CLASS_PATH : jdk 루트 / bin 2. CygWin 설치CygWin은 윈도우상에서 리눅스 소스를 컴파일해주는 프로그램 Devel항목과 Editor항목을 Install로 변경 후 설치 (엄청 오래걸림) Path 설정cygwin/bincygwin/usr/include 3. 안드로이드 SDK 설치Path 설정sdk 루트 / tools 4. 이클립스 설치안드로이드 관련 PlugIn 설치Help -> Install New Software..플러그인 주소 : http://dl-ssl.google.com/android/eclipse/ SDK Manager 열고 아래 항목 설치Tools 항목 선택안드로이드 버전 선택 5. 안..
배열과 포인터 테스트 포인터와 배열의 개념을 확실히 잡기 위해 아래와 같은 실험을 해보았다.#ads_1#include #include using namespace std; class XY{ public: int nX, nY; }; int main(){ XY xy[10]; XY *ptr; ptr = xy; //1번 ptr->nX = 1; ptr->nY = 2; //2번 (*(ptr+1)).nX = 3; (*(ptr+1)).nY = 4; //3번 ptr[2].nX = 5; ptr[2].nY = 6; //4번 (*(ptr+3)).nX = 7; (*(ptr+3)).nY = 8; cout