std::string wstring2string(std::wstring wstr) {
std::string str(wstr.length(),' ');
copy(wstr.begin(),wstr.end(),str.begin());
return str;
}

std::wstring string2wstring(std::string str) {
std::wstring wstr(str.length(),L' ');
copy(str.begin(),str.end(),wstr.begin());
return wstr;
}
Posted by 니니스 :

TCHAR * des = new TCHAR[sString.GetLength() + 1]; // 1은 NULL을 위한 여유공간
_tcscpy(des, sString.GetBuffer(0));
Posted by 니니스 :


CString strTemp = _T("2354234");
int iTemp = _ttoi( strTemp );

Posted by 니니스 :
 
std::string strOriginal;      // 원래 문자열
TCHAR strChange[30] = L"";    // 변환시킬 문자열을 담음
size_t origsize = 0, convertedChars = 0; // 원래 문자열 길이, 변환된 문자열 길이

origsize = strlen(strOriginal.c_str()) + 1;  // 변환시킬 문자열의 길이를 구함
mbstowcs_s(&convertedChars, strChange, origsize, strOriginal.c_str(), _TRUNCATE); // 변환

* mbstowcs() 함수를 사용하면 2005 이상의 버젼에서 경고를 띄운다. 그래서 mbstowcs_s() 함수를 사용하고,
mbstowcs_s() 이 함수가 문자열 오버플로우 같은걸 애초에 방지해준다고 검색하다가 본듯
Posted by 니니스 :
ALT + F8

줄 맞출 부분 드래그해서

단축키 눌러주면

줄이 알아서 맞춰짐
Posted by 니니스 :
사용자 삽입 이미지

리스트 컨트롤의 정렬에는 위에 보이는 바와 같이 3가지 종류가 있다.

* None : 정렬하지 않음
* Ascending : 사전식 정렬
* Descending : 사전식 정렬의 반대


각각의 정렬의 역할을 저렇다. 하지만... 정렬의 상태를 줬을때..( Ascending이나 Descending 선택 )
아래의 경우가 생길수 있다.
저런 경우가 생기면 실제로 표시는..

사용자 삽입 이미지

실제 표시 되는건 아래의 그림과 같이 앞쪽 Column의 내용은 나오지 않게 된다.
이럴땐 정렬을 None으로 해주면 두 Column 다 올바르게 표시되지만..
정렬을 할수는 없는데.. 이유는 나도 모르겠다 -ㅅ-;;( 이유 아시는분은 리플로 좀 알려주세요 ㅋ_ㅋ )
사용자 삽입 이미지
Posted by 니니스 :
'std::string' to 'CString'

std::string s("Hello");
CString cs( s.c_str() );

'CString' to 'std::string'

CString cs("Hello");
CT2CA pszConvertedAnsiString (cs);
std::string strStd( pszConvertedAnsiString );

검색하면 관련된거 많이 나오지만...

다른건 안되고 이거만 됐음! +_+
Posted by 니니스 :

2D 상에서..

캐릭터가 이동할때 동서남북으로는 이동시키기는 쉽습니다.

그냥 캐릭터의 x, y좌표 값만 변화 시켜주면 되니깐요.

하지만 대각선으로 이동하게 되면 이 방법만으로는 움직임이 이상해지는 것을 볼수 있을껍니다.

그럴때 사용하는 함수가 바로..

atan2();

입니다.

사용자 삽입 이미지











사용할때는..

atan2( y축 증가량 , x축 증가량 );

을 해주면 이 함수는 위 그림에서 보이는 빨간색 막대의 크기( = 캐릭터의 이동량 )을 리턴해 줍니다.

캐릭터의 x, y 좌표에 구해진 이동량만 더해주면..

대각선 이동은 끝!

Posted by 니니스 :

API 에서 가장 많이 쓰는 BitBlt 함수의 사용.

우선 게임에서 애니메이션 효과와 함게 사용하려면 이미지는 두가지가 필요.

1. 원본 이미지

사용자 삽입 이미지











2. 알파전용 이미지

사용방법은... 알파이미지를 먼저 뿌리고 원본이미지를 뿌린다. 알파에서 검은색부분만 빼고 나머지 부분은 원본 이미지에서 알파 처리가 되어진다. 예를 들면....

BitBlt( hdc, .... , SRCAND );  // 알파 이미지 그리고

BitBlt( hdc, .... , SRCPAINT );  // 원본 이미지 그리기

애니메이션 효과는 그려질 부분의 좌표면 시간이 지남에 따라 바꿔주면 된다. 알파이미지도 마찬가지..

알파 이미지 만들기가 워낙 노가다라 ㅎㄷㄷ.. -ㅅ-

Posted by 니니스 :

내가 KGCA에 처음 들어와서 바둥거릴때... 겪었던 그 당시엔 난감했던 일...

scanf의 사용이다.

C언어로 게임을 짜게되면 scanf 로 연속적으로 정보를 입력받게 되는 경우가 생긴다..

예를 들면...

scanf(...)

scanf(...)

scanf(...)

이렇게 되었을때 첫번째 입력을 제대로 되지만 두번째 입력은 그냥 건너뛰어 버린다.

이유는 첫번째 입력 후 enter키의 입력이 두번째 scanf에서 문자로 인식을 해버리고 그대로 건너뛰어 버린다.

해결책은...

scanf( " %c", .... )    : %c 앞에 공백 한칸을 준다. 또는..

scanf( "%*c", .... )   : * 문자를 이용하여 구분지어 준다.

이렇게 하게 되면 입력을 건너뛰어버리는 난감한 경우를 막을수 있다. :)

Posted by 니니스 :