본문 바로가기

프로그래밍

(102)
미사일 터렛을 터치한 곳쪽으로 바라보게 회전하기 미사일터렛을 터치한 곳을 바라보도록 회전시키는 부분이다. 산수도 제대로 공부 안 한 덕에 이해가 빨리 안되어서 정리해 둔다.#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
함수에서 다차원 배열의 리턴 함수에서 1차원 배열을 반환할때에는 단순히 해당 포인터를 반환하면 된다그러면 2차원 배열을 반환할때는 어떻게 해야할까?#ads_1얼핏 아래처럼 하면 될 줄 알았다.char** func(void){ static char a[2][10] = {"aaaa", "bbbb"}; return a; }이런 제길 return a; 에서 a가 반환값 형식과 맞지 않는다고 빨간지렁이들이 글자밑에 꾸물꾸물 나타났다 -_-;; 그럼 도대체 어떻게 해야 하는가???정답은 배열포인터를 사용하면된다.배열의 주소를 가진 포인터!!typedef char (*Temp)[10];Temp func(){ static char a[][10] = {"aaaa", "bbbb"}; return a; }char (*Temp)[10]참 해괴한 문법이긴..