짤셔틀 개발일지

오늘의 감상. 프로그램 코드는 한글자로도 결과가 천차만별이다.

썅;;

어떻게 슬래쉬 하나 안넣었다고;;

by 맑탉앉앍꿇헒 | 2009/10/26 23:23 | 사는 이야기 | 트랙백 | 덧글(4)

이런거 만드는게 또 재밌어졌당 ㅎ...


갤부루랑 단부루에서 짤을 긁어오는 마법의 아이템

by 맑탉앉앍꿇헒 | 2009/10/24 17:11 | 東方 Project | 트랙백 | 덧글(2)

다이렉트로 2D슈팅 만들기 2

다이렉트로 2D슈팅 만들기 2장








1.

프로젝트를 생성

Win32프로젝트로 잉여롭게 생성


콘솔 응용 프로그램은 도스 프로젝트인거 알고 있을테니 패스

2.

다음 -> 다음에서빈 프로젝트를 선택한다


마침을 누르면 프로젝트 생성 끝

그 뒤 적절하게 WinMain.cpp 파일을 새로 생성해준다



WinMain.cpp 파일에 적는다

==========

#include <windows.h> // WINAPI 를 쓰기 위해선 이 헤더파일을 포함해야함

HWND g_hWnd; // 밖으로 빼낼 윈도우의 핸들값 변수
HINSTANCE g_hInst; // 밖으로 빼낼 윈도우의 인스턴스값 변수

LRESULT WINAPI WndProc(HWND, UINT, WPARAM, LPARAM); // 윈도우의 메세지 프록

LPSTR WinText = "윈도우 32비트 꼐임"; // 창 제목으로 쓸 문자열

INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR, INT) // WinMain함수에서 지금 쓸건 첫번째 인수밖에 없다
{
    HWND hWnd; // 윈도우 핸들값
    WNDCLASS wc; // 윈도우 클래스
    wc.cbClsExtra = 0; // 딱히 모름;
    wc.cbWndExtra = 0; // 딱히 모름;
    wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); // 창의 바탕색을 흰색으로 만듬
    wc.hCursor = LoadCursor(NULL, IDC_ARROW); // 현재 운영체제에 적용된 마우스 커서를 가져옴
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); // 어플리케이션 아이콘(그러니까 그냥 응용 프로그램 아이콘) 가져옴
    wc.hInstance = hInst; // 저 위의 인스턴스값 삽입
    wc.lpfnWndProc = WndProc; // 메세지 프록 함수 포인터. 이렇게만 적어놓으면 딱히 신경 쓸 필요 없음
    wc.lpszClassName = WinText; // 창 이름이랑 똑같이 해두면 편하다
    wc.lpszMenuName = NULL; // 딱히 신경 쓸 필요 없음
    wc.style = CS_VREDRAW | CS_HREDRAW; // 창의 크기가 변하면 창을 새로 그린다

    ::RegisterClass(&wc); // 윈도우 클래스를 등록

    RECT r = {0, 0, 800, 600}; // 윈도우 창 크기를 설정
    ::AdjustWindowRect(&r, WS_SYSMENU | WS_CAPTION, false); // 안쪽의 크기가 800, 600이 되도록 제목과 창 크기에 맞춰 크기를 늘려줌

    hWnd = CreateWindow(WinText, WinText, WS_SYSMENU | WS_CAPTION, 100, 100,
        r.right - r.left, r.bottom - r.top, NULL, NULL, hInst, NULL); // 윈도우를 생성한다

     g_hWnd = hWnd; // 핸들값을 함수 밖에다 알려준다

    ShowWindow(hWnd, SW_SHOWDEFAULT); 윈도우 표시
    UpdateWindow(hWnd); // 윈도우 새로고침

    MSG msg; // 메세지 구조체 생성
    ZeroMemory(&msg, sizeof(MSG)); // 꼭 ZeroMemory로 0으로 비워줘야 한다

    while(msg.message != WM_QUIT) // 메세지가 WM_QUIT이 아닐때 무한루프
    {
        if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) // 메세지가 있나 확인, 있으면 아래로 실행한다
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    }

    return 0;
}

LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) // 윈도우 메세지 콜백 함수
{
    switch(msg)
    {
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    }
    return DefWindowProc(hWnd, msg, wParam, lParam);
}

여기까지만 적어주면 된다

여기서 잠깐 컴파일해서 실행

아 혹시 LPWSTR이나 LPCSTR어쩌구저쩌구 지롤하면서 컴파일이 안되면

2005, 2008기준 Alt + F7을 눌러서 속성창을 연 다음

오른쪽 위의 구성을 전체로 바꾸고 문자 집합을 멀티바이트로 바꾸면 된다


그럼 이제 상큼하게 내부 크기 800*600크기의 흰색 윈도우 창 하나가 뜸

물론 닫기버튼밖에 안먹히는 윈도우 창임


이번 강좌랄것도 없는건 여기까지만 합세 ㅇㅇ

by 맑탉앉앍꿇헒 | 2009/10/18 01:09 | 게임을 만들자 | 트랙백 | 덧글(4)

다이렉트로 2D슈팅 만들기

주의사항

 - 생 초보적인 코드.
 - 3D배경? 그딴거 없다
 - 32비트 환경에서 Visual Studio 2005를 쓰는 가정 하에 서술


1.


http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=b66e14b8-8505-4b17-bf80-edb2df5abad4

일단 다이렉트 SDK를 받아 설치한다




2.

VS2005에서 도구->옵션을 들어간다.


다음 파일의 디렉터리 표시에서 포함파일을 선택


3.

가장 아래쪽의 빈 공간을 더블클릭 하면 폴더 탐색창이 뜬다

거기서 다이렉트 SDK가 설치된 폴더 안의 Include 폴더를 지정해준다

기본 폴더는

C:\Program Files\Microsoft DirectX SDK (업데이트 날짜 월, 년도)\Include

4.

디렉터리 표시에서 라이브러리 파일 선택

아까 한것처럼

다이렉트 SDK 설치 폴더\Lib\x86 지정. x86이 32비트 환경에서 사용하는것



이제 다이렉트 사용 준비는 끗

by 맑탉앉앍꿇헒 | 2009/10/16 23:47 | 게임을 만들자 | 트랙백 | 덧글(4)

◀ 이전 페이지          다음 페이지 ▶