메뉴 건너뛰기

자유롭게 이야기를 적는 공간

int x=320,flag=0,flag2=0,flag3=0,missleX,missleY; //움직임 관련 변수
int bird[10]={0,},birdX[10]={0,},birdY[10]={0,},birdS[10]={0,},doa[10]={0,};

void animate_self() // 애니메이션 함수
{
        if(flag >= 0 && flag <= 10){jdd->DrawPicture(backbuffer,"s01",x,312,NULL);flag+=2;}
                else if(flag >= 10 && flag <= 20){jdd->DrawPicture(backbuffer,"s02",x,312,NULL);flag+=2;}
                else if(flag >= 20 && flag <= 30){jdd->DrawPicture(backbuffer,"s01",x,312,NULL);flag+=2;}
                else if(flag >= 30 && flag <= 40){jdd->DrawPicture(backbuffer,"s03",x,312,NULL);flag+=2;}
                else if(flag >= 40){jdd->DrawPicture(backbuffer,"s03",x,312,NULL);flag = 0;}
}

void missle()
{
        if(flag2 == 1){
                jdd->DrawPicture(backbuffer,"bull",missleX,missleY,NULL);
                missleX-=5;
                missleY-=15;
                if(missleY <= 10)flag2 = 0;
        }
}
void bird_rnd()
{
        jds->Play("woo");
        for(int i=0;i<10;i++){
                birdX[i] = 580;
                for(;;){
                        birdY[i] = rand()%280;
                        if(birdY[i] > 20)break;
                }
                for(;;){
                        birdS[i] = rand()%15;
                        if(birdS[i] > 5)break;
                }
                doa[i] = 1;
                jdd->DrawPicture(backbuffer,"bird",birdX[i],birdY[i],NULL);
        }
}
void bird_move()
{
        flag3=0;
        for(int i=0;i<10;i++){
                if(doa[i]==1){
                        if(birdX[i]>20)birdX[i]-=birdS[i];
                        else if(birdX[i]<=20)birdX[i] = 580;
                        jdd->DrawPicture(backbuffer,"bird",birdX[i],birdY[i],NULL);
                        flag3 = 1;
                }
        }
}
void chkcrash()
{
        for(int i=0;i<10;i++){
                if(birdX[i]<=missleX && birdX[i]+42>=missleX){
                        if(birdY[i]<=missleY && birdY[i]+22>=missleY && doa[i] == 1){
                                doa[i]=0;
                                jds->Play("ark");
                        }
                }
        }
}
int main()
{
        jdd=CreateDirectDraw();
        jds=CreateDirectSound();
        jre=CreateDXResourceManager(jdd,jds);

        HINSTANCE hInstance=(HINSTANCE)0x00400000;

        WNDCLASS wc={0};
        wc.hIcon=LoadIcon(hInstance,"PSYCCER.ico");
        wc.hCursor=LoadCursor(hInstance,IDC_ARROW);
        wc.lpfnWndProc=WndProc;
        wc.hInstance=hInstance;
        wc.style=CS_HREDRAW|CS_VREDRAW;
        wc.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
        wc.lpszClassName="Demo";
        RegisterClass(&wc);
        
        HWND hwnd=CreateWindow("Demo","새 사냥",WS_POPUP|WS_VISIBLE,0,0,640,480,NULL,NULL,hInstance,NULL);
    ShowCursor( FALSE );

        jdd->Initialize(NULL,hwnd,640,480,16,true);
        jds->Initialize(0,hwnd);
        
        //초기화
        backbuffer=jdd->GetBackBuffer();
        JFont font20=jdd->CreateFont("굴림체",20,true,false,false,false,false);
        srand( (unsigned)time( NULL ) );
        
        jdd->SetFrameRate(100,true);
        jdd->SetVerticalSync(false);

        //재료 불러오기
        JPictureInfo pi;
        pi.SetColorKey(JColor(0,0,255));
        jdd->LoadPicture("ground","ground.bmp",&pi); //땅 높이 52
        jdd->LoadPicture("s01","char.bmp",&pi); // 총구 x, y-5
        jdd->LoadPicture("s02","char2.bmp",&pi);
        jdd->LoadPicture("s03","char3.bmp",&pi);
        jdd->LoadPicture("bg","sky.jpg");
        jdd->LoadPicture("bull","bullet.bmp",&pi);
        jdd->LoadPicture("bird","bird.bmp",&pi);
        jds->LoadSound("music","bgsound.mid");
        jds->LoadSound("shot","shot.wav");
        jds->LoadSound("ark","uk.wav");
        jds->LoadSound("woo","revolt.wav");

        //새게임
        jds->Play("music");
        for(;;)
        {
                if(_GetKeyState(VK_LEFT))x-=5;
                        else if(_GetKeyState(VK_RIGHT))x+=5;
                        else if(_GetKeyState(VK_ESCAPE))break;
                
                if(_GetKeyPush(VK_SPACE) && flag2 == 0){
                        jds->Play("shot");
                        missleX = x;
                        missleY = 308;
                        flag2 = 1;
                }
        
                jdd->DrawPicture(backbuffer,"bg",0,0,NULL);
                jdd->DrawPicture(backbuffer,"ground",0,340,NULL);

                missle(); //총알 처리
                animate_self(); //슬라임 애니메이션        
                if(flag3 == 0)bird_rnd();
                bird_move();
                chkcrash();
                jdd->Render();
        }

        return 0;
}

----------------------------------------------------
거의 감각적으로 프로그램을 짜다보니 효율은 별로임.
그래도 알아보긴 쉬울 겁니다.

지금 생각해보면 2차원 배열로 하면 배열 3개 선언할 것 없이
일사천리로 할 수 있었을텐데, 왜 그랬지.

원하시면 각 변수나 배열이 무슨 역할인지 설명해드리죠.
조회 수 :
554
등록일 :
2004.06.20
21:23:54 (*.108.)
엮인글 :
게시글 주소 :
https://hondoom.com/zbxe/index.php?mid=free&document_srl=74363

우성호

2008.03.19
09:34:35
(*.117.113.197)
main.cpp 전체 공개하랬지 일부 공개하랬소? 맨 아랫 부분하고 윗 부분 어디갔소? 내 게임 오류의 근원을 찾으려면 main.cpp 전체가 있어야 하거늘!!!

우성호

2008.03.19
09:34:35
(*.117.113.197)
새 사냥 폴더 안에 필요 파일 싸그리 넣고 main.cpp에 이 내용 넣으면 에러 93개 납니다.

철없는 아이

2008.03.19
09:34:35
(*.81.198.146)
뭐예요?

행방불명

2008.03.19
09:34:35
(*.213.29.126)
그러게 말입니다.
List of Articles
번호 제목 글쓴이 조회 수 추천 수 날짜sort 최근 수정일
공지 (대피소) 혼돈과 어둠의 디스코드 노루발 142   2023-09-05 2023-09-05 16:05
공지 글 작성을 위해서는 회원 가입이 필요합니다. 노루발 4701   2016-02-22 2021-07-06 09:43
14748 여자들은 머리카락 길어서 [2] 짜요 52   2018-12-27 2018-12-27 23:19
머리카락으로 목도리하고다녀도 되겠당... 부러워  나두 머리길러서 목도리하고싶다ㅎㅎ  같이 머리기르실분 아니면 서로 안아줘서 체온을 공유합시다 어서 이리로 들어와  
14747 자야겠음 [8] 흑곰 43   2018-12-27 2018-12-28 09:48
이제 나이먹어서 밤 못샘  
14746 날씨 진짜 개같이추워짐 [6] 짜요 40   2018-12-27 2018-12-28 09:49
빌어처먹을 시베리아기단 그나마 다행인건 미세먼지랑 같이올일은없다는거  미세먼지있으면 안춥고 없으면 춥고  헬피엔딩 개꿀  
14745 즐거운 크리스마스 연휴가 끝났습니다 [3] 흑곰 35   2018-12-27 2018-12-27 23:21
즐거운 크리스마스 연휴가 끝났습니다. 진정한 연말이네요. 올해 하고 싶은게 많았는데 계획이 분명하지 않아 마치지 못한 일들이 많습니다. 혼둠 리뉴얼도 그 중의 하나인데, 무리하지 않는 선에서 조금씩 해보도록 하겠습니다.  
14744 요즘은 [2] 짜요 43   2018-12-25 2018-12-27 03:48
거리에서 케롤 듣기 힘드네요 저작권때문인가... 어렸을땐 길거리 걸으면 가게마다 케롤 울려퍼지고 그랬는데  크리스마스 느낌보단 그냥 쉬는날의 연장같군요 물론 쉬는날이 아니라 좀 빡치는건 함정  혼둠인들 다들 메리크리스마스하시고 올해 몇일 안남은 ...  
14743 누군 쉬는데 누군 일하네 ㅋ [4] file 룰루 100578   2018-12-24 2018-12-27 03:48
 
14742 후.. 이제 곧 크리스마스네요 [5] 짜요 40   2018-12-24 2018-12-27 03:49
혼둠엔 산타할아버지 안오시죠? 받고싶은 선물 있는데...  만약 오신다면 애쉬 황금크로마 선물해주세요  그거빼고 다모았단말이에요  
14741 노루 점프 [6] 노루발 101   2018-12-23 2018-12-27 05:03
펀딩, 펀딩, 광고, 광고, 광고 yeah 먹튀 yeah 이게 요즘 유행이라며, 한국 인디겜 망해라! 노루발 내 인생 존나 뻥 yeah 우주는 겁나게 크고 난 우주의 좆밥 날 괴롭힌 세상 사람들 나빠 차에 치인 고라니처럼 난 지금 아파 하나님 빌어요 인생의 재활과 떡...  
14740 혼둠위키 건의사항 2 [1] 노루발 43   2018-12-23 2018-12-24 20:56
이미 우선순위가 높은 작업들이 많지만 개인적인 생각과 아쉬움에 몇 가지 건의사항을 남겨봅니다. 1. 없는 문서만 모아서 보는 기능 링크는 되어 있지만 작성되지는 않은 문서들만 모아 보는 기능이 있었으면 좋겠어요. 2. 내용이 없거나 짧은 문서만 모아서 ...  
14739 12월 25일까지 휴식 [2] 흑곰 33   2018-12-22 2018-12-24 20:56
25일까지 휴식. 여행을 갔다오기로 했습니다. 혼둠 업데이트는 당분간 없을 예정입니다. (혼둠위키, 건물 등) 다음 업데이트는 1월달을 기대해봅시다. 아디오~스  
14738 (스포) 아쿠아맨 짧은 꽁트 몇 꼭지 노루발 28   2018-12-22 2018-12-22 22:51
씹덕, 찐주의 #1 (불의 고리 결투씬) 옴: 네 삼지창은 어머니의 것과 같아... 결함이 있지! 옴: 난 내 아버지의 창으로 한 번도 진 적 없다! (삼지창을 휘둘러 아서의 삼지창을 부숴버린다) 아서: 윽... (정신을 잃는다) (아서의 머릿속) 아틀라나: 일어나라 ...  
14737 오늘 할 것 노루발 25   2018-12-22 2018-12-22 21:13
그런 건 없다.  
14736 오늘 날씨가 너무 좋네요! [2] 짜요 27   2018-12-22 2018-12-23 00:14
근데 안추운거랑 별개로 미세먼지는 하아...  
14735 어째서 나만 크롬을 통해서 혼둠위키 접속이 되지 않는가 [4] 장펭돌 45   2018-12-22 2018-12-27 04:42
나도 혼둠위키 접속시켜줘잉  
14734 하루 글 두개쓰는건 반칙인가 [2] file 짜요 35   2018-12-22 2018-12-22 08:01
 
14733 최근 들어 건축붐이 일고있네요. [15] 슈퍼타이 52   2018-12-22 2018-12-22 20:59
저는 아무런 존재감도 없는 하찮은 미물이지만, 감히 한마디 청함이 있삼니다. 저도 건물 하나만 지어주심 안될까염 ㅎ 저도 건물 키우기 하고 싶어욤 ㅎㅎ. 이름은 가건물이어도 상관없구요 컨셉은 글쓰는 공간이에오 ㅎㅎ 아 방금 이름 하나 생각 났는데 코...  
14732 하이 웨이드~ [8] file 짜요 444   2018-12-22 2018-12-22 05:51
 
14731 혼둠위키 개발일지 [2] 흑곰 50   2018-12-21 2018-12-21 23:23
공개할 필요가 없다고 생각했는데 혹시 궁금하신 분들 있을 것 같아서 올립니다. 혼둠위키 개발에 대한 사항들입니다. 여러가지 생각은 해뒀는데 12월 22일 ~ 25일 여행일정도 있고 해서 1월에 될듯 합니다. ---------- 혼둠위키 개발일지 1. 개발 내역 - 최...  
14730 혼둠위키 건의사항 [4] 노루발 30   2018-12-21 2018-12-21 19:46
1. 개발중인 위키라 테스트 문서가 많은데 난잡해 보임. 문서 삭제하는 기능도 필요한것 같아요. 2. 문서 목록이 어지럽게 섞여 있는데 인물, 용어, 사건 등으로 분류하는 기능이 있었으면 좋겠어요.  
14729 혼둠위키 개발중 [6] 흑곰 79   2018-12-20 2018-12-22 03:43
아직 한참 멀었지만 혼둠위키 개발 중입니다. 이런건 다 만들어지고 공개해야 되는데 이놈의 설레발... 장펭돌님이 12월 18일날(그저께) 제안하셨고 그날 밤을 새서 프로토타입을 만들었네요. 어제 밤에도 다소 기능을 고쳤고, 고칠게 아직 많이 남아있네요. ...