메뉴 건너뛰기

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

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개 선언할 것 없이
일사천리로 할 수 있었을텐데, 왜 그랬지.

원하시면 각 변수나 배열이 무슨 역할인지 설명해드리죠.
조회 수 :
596
등록일 :
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 추천 수 날짜 최근 수정일
공지 (대피소) 혼돈과 어둠의 디스코드 노루발 5627   2023-09-05 2023-09-05 16:05
공지 글 작성을 위해서는 회원 가입이 필요합니다. 노루발 8028   2016-02-22 2021-07-06 09:43
2090 펭돌님의 의견에 대한 설문 [4] 똥똥배 559   2008-08-07 2008-08-14 02:10
삐걱삐걱 에메날개 공룡돌이 추리쩡 어느 것이 당신은 더 재밌었나요?  
2089 아잌쿠 즐거워라 검룡 559   2004-06-02 2008-03-19 09:34
둘리의 USB포트와 내 엠피쓰리랑 맞는다아아아아아 라는 결론으로 수능날은 행복하지~ 마리님이 보고계셔.[마리미테] 학교 안가고 얼마나 좋아. 잏시  
2088 오타발견 쿠어어어 [1] 요한 559   2008-04-13 2008-04-13 01:10
백과사전 혼둠과 어둠의 땅. 혼돈과 어둠의 땅으로 수정바랍니다.  
2087 전 예언가였음. [4] 똥똥배 559   2008-07-13 2008-07-13 17:00
대슬이 유럽 갈 것이 이미 예전에 예언하였음. http://hondoom.com/zbxe/?mid=create&search_target=title&search_keyword=%EC%8B%A0%EB%B3%80%EC%9E%A1%EA%B8%B0&document_srl=66706  
2086 채팅방 + 지도 에서 개선점 [3] 장펭돌 559   2008-10-07 2019-03-19 23:16
사실상 채팅방 + 메뉴 + 지도 라는 선택지가 있기는 하지만 서도 그걸 쓰는사람은 아마 드물것 같네요, (개인적 생각이지만) 아마 대부분 채팅방 + 지도 를 사용하실텐데 그렇게 되면 불편한 점이 하나 있습니다. 반드시 다시 지도화면으로 넘어간 다음에야 다...  
2085 근황 [3] 대슬 559   2009-09-16 2009-09-20 23:23
9월 1일 이후로 개학을 해서요. 조금 바빴습니다. 진짜, 아주 조금 바빴지만 혼둠에 들어올 시간은 없었습니다. 뭐 그런거죠. 심사는 내일까지 해서 드리도록 하겠습니다. 실은 게임들 해보기가 너무 귀찮아서 심사가 늦어졌거든요. 현재 팔란티르 스토리, 스...  
2084 문득 떠오름. [1] 케르메스 560   2004-05-27 2008-03-19 09:34
밑에글에 함께써야하지만 귀차니즘이 절 강타해서 생각해보니 꿈의논문따윌 찾을필요가 없다. 어차피 이곳에 사용되는자료는 혼돈님의 자료, 주민의 자료라 하면 기껏해야 술라임님이나 훅곰님같은분들의 자료 찾아봐야 사용도 못하는걸 뭐하러 찾아. 그래서 ...  
2083 그나저나 리뉴얼해야 하는데... [2] 똥똥배 560   2011-12-07 2011-12-12 07:42
대회도 시작되고 해서 방문하는 분도 늘텐데, 쓸데없는 메뉴 좀 치우고 만들다 만 건물도 제대로 지어야 겠네요. 건물 그림은 계속 지원 받고 있으니, 지금 낙서처럼 그려져 있는 건물 중에 자신이 그려보고 싶으신 게 있으시면 그려서 주시면 반영해 드리겠습...  
2082 요즘 부족전쟁이라는 게임을 하는데 [3] 노루발 560   2013-11-29 2013-12-11 06:35
삶이 피페해질 정도로 재밌습니다. 사실 재밌다기 보다는 중독성이 강해서 계속 하게 된다고 해야 하나.. 사실 게임 자체는 매우 간단한 게임인데. 역시 게임은 단순하고 복잡성은 사람이 만드는, 그런 게임이 좋은 게임인 듯. 마치 오목처럼요. (사실 오목도 ...  
2081 나는 시대에 뒤쳐지지 않았어 [4] file 뮤초 561   2009-04-08 2009-04-12 22:57
 
2080 혼돈님 [4] 팽드로 562   2008-09-28 2019-03-19 23:16
싸이즈볼의저좀 등장 시켜주세요.....  
2079 제7대 상인왕 : 박동흥 천재님 -_-; [2] 뚤퍅 562   2008-06-29 2008-06-30 01:08
셋이서 온해저자 한판 했는데 (그 전에 요상한 맵 만들었던)한명이 맵의 90%를 황무지로 만들고 시작하게됐습니다; 이래저래 하다보니 저를 포함한 3명 모두 돈이 0원 -_-;; 결국 다들 악마에게 영혼을 팔고 서로 치고박기 바빳죠; 이래저래 결과집계는 했는...  
2078 드래곤 퀘스트 1 (SFC) 를 하고 있습니다. [4] Kadalin 562   2008-12-22 2008-12-23 03:30
왜 헌터x헌터가 연중되는 지 알겠네요.  
2077 내일이 똥똥배대회 심사 마지막날이네요. [4] 똥똥배 562   2011-09-14 2019-03-19 23:09
그런데 헤드얍님 빼고 아직 심사 완료되신 분이 없는 듯 하군요. 사실 저도 요즘 일이 바빠서 한 작품을 아직 심사를 못 했습니다. 아마 15일 딱 결과가 나오기는 힘들 듯 하네요. 출품자들 분들께 조금 미안할지도.  
2076 오랜만에 혼둠에 오니 엘리트퐁 562   2012-02-29 2019-03-19 23:08
너무나도 많이 변했다. 그리고 혼둠의 평균연령은 언제나 항상 올라가고 있는거같다. 슬프다.  
2075 카톡방 흥하다 [1] 흑곰 562   2012-01-22 2019-03-19 23:09
현재 참여자 : 장펭돌, 흑곰, 쿠로쇼우, 대슬, 자자와 말하는 내용 : 내용없는 "ㅋㅋㅋ"가 50%, 나머지는 그냥 자기 얘기만 합니다. 어찌됐건 저는 게임코딩을 하려고 하는데, 녹록치가 않군요. 그냥 상대방 컴사양 고려안하고 대충 짜기로 함. 뭐 그래봤자 이...  
2074 영화는 북두의권 실사판이 킹왕짱 [3] file 외계생물체 563   2007-11-23 2008-03-21 19:05
 
2073 DJ하니 요즘 떠오르는 DJ가 있습니다 [3] 사과사촌 563   2008-07-09 2008-07-11 02:42
아임클럽디제이 암고나메큐뭅 아임디제이쿠 암고나매큐댄스 이펙트를 건드리는 줄 알았던 현란한 손놀림이 볼륨 줄였다 올리기 스킬인걸 알고나니 감탄사가 절로 나옵니다  
2072 우와왓! 무적코털 보보보 18권이 나오는군요. [3] 똥똥배 563   2008-10-19 2008-10-19 04:48
다른 분들이야 관심도 없겠지만 이거 모으다가 17권 이후로 1년 넘게 다음권이 안 나와서 일본판을 사야하나 심각하게 고민했는데. 1권을 보면 그림도 엄청나게 못 그리고 17권을 봐도 잘 그리는 편은 아니지만 개그 하나는 끝내주는 만화. 개인적으로 이 만화...  
2071 뮤초님의 Noise 꼼수 [3] file 똥똥배 563   2009-02-25 2009-02-26 00:41