메뉴 건너뛰기

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

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 추천 수 날짜 최근 수정일
공지 (대피소) 혼돈과 어둠의 디스코드 노루발 128   2023-09-05 2023-09-05 16:05
공지 글 작성을 위해서는 회원 가입이 필요합니다. 노루발 4695   2016-02-22 2021-07-06 09:43
486 비브리아 하시다 개선되었으면 하는 것 있으면 말씀해 주시길... 혼돈 75   2007-04-01 2008-03-21 15:58
Ver 1.1에서 개선 예정 중 인것 - 대화창에 이름이 뜨도록. - 한판 끝나고 다시 대전이 가능하도록 - 선공 후공 선택을 넣기 - 채팅창에 '패'라는 글자가 안 찍히는 것 수정  
485 [re] 운영자 횽아들 아리포 75   2005-09-24 2008-03-21 06:29
>기계 : 뮤턴트 >1주일동안 3개 이상 자료 안올라 왔는걸? > >덤으로 > >동영상탑도 내일까지 자료없으면 1주일 채우는거다? 프랑님은 자게에서 활동하신거 보면 알수있고요 다른사람들은 잠수했고 동영상탑은 붕괴 ㅇㅋ? 역할극은 릭님의 복사로 인한 글....  
484 샤슬릭 정모 후기 [2] 흑곰 74   2023-08-26 2023-08-31 09:00
발단은 폴랑과 라컨의 다이어트 대결로 기억함. 폴랑과 라컨이 각자 다이어트 목표를 내걸었고, 지는 쪽이 샤슬릭을 사기로 내기했었음. 참고로 샤슬릭이란 러시아식 꼬치 음식으로 알고 있음. 대표적인 게 러시아식 양꼬치. 중국 양꼬치보다 고기도 꼬치도 훨...  
483 아주 작은 것을 만들어보는 건 어떨까 [4] 흑곰 74   2023-07-06 2023-07-09 06:34
올드회원 몇몇이 모여서 얘기를 하다가 게임 개발 얘기가 나왔습니다. 그 중에서도 웹게임 개발 얘기가 나왔었는데, 노루발님과 대슬님도 그자리에 있었습니다. 노루발님은 웹게임 <혼둠지>를 개발했던 경험이 있으시고, 대슬님은 직업개발자이며 <웹게임개발...  
482 오토배틀 챌린저스! 마스코트 조합에 관해 노루발 74   2023-07-04 2023-07-04 13:18
목차 1. 마스코트 조합이란? 2. 마스코트 조합의 장점과 단점 3. 마스코트 조합을 어떻게 플레이해야 하는가? 3-1. 마스코트 조합을 선택하는 경우 3-2. 집어야 하는 카드들 3-3. 라운드 별 운영법 4. 마스코트 조합 상대로 어떻게 플레이해야 하는가? 5. 마...  
481 이곳을 알게된지 어언 17년 [1] 백곰  74   2018-08-08 2018-08-09 09:52
아직도 사이트의 수명이 이어진다는게 신기하네요 (많이 유령화 되었다지만) 모두의 추억이 남아있어서 그런건 아닐까 싶습니다. 종종 글 남기겠습니다. 그럼 20000  
480 오랜만에 들르는 겨울늑대 [1] 겨울늑대 74   2020-09-08 2020-09-09 17:37
아,저 진짜 오랜만에 들렀어요. 한달 전에 들른거같기도 하고....... 함 들러봤어요.^^ 가끔씩 들러야겠다...... 이런 생각이 맴도네요. 가끔씩 들러야겠어요. 혼돈과 어둠의 땅 여러분!!!! 모두 건강하세요!!!!!!!!!!!! 태권애기라고 닉네임 쓴  사람이 가입...  
479 노루발의 퇴계로5가 여행기 [2] 노루발 74   2019-07-04 2020-03-02 01:14
CG125를 사려고 충무로에 왔다. 지하철역 출구를 빠져나오자 화석이 된 오토바이가 보인다. 저런 걸 타는 할아버지들은 3일에 한번씩 센터에 가서 고장난 무엇인가를 고칠 것 같은데 어떻게 타지?? 퇴계로는 생각보다 크지 않다. 동네를 돌아다니다 보면 있는...  
478 아마추어 게임대회의 의의 [4] 노루발 74   2018-08-27 2018-09-07 10:09
아마추어 게임을 만들면서 겪는 어려움(?) 중 하나는 "아무도 내 게임을 할 사람이 없다" 라는 것. 아무래도 창작활동이라는 것 자체가 남에게 인정받고 싶다는 욕구를 어느정도 내제하고 있는데 (자기가 만들어서 자기가 즐기고 그걸로 만족할 수 있는 사람은...  
477 옛날에 만든 게임들 볼 때마다 드는 생각 [2] 노루발 73   2023-12-12 2024-01-02 12:47
어케만들었지 시ㅣ발;;  
476 [3] ㅋㄹㅅㅇ 73   2019-10-10 2020-03-01 04:52
 
475 땅거지라 3일동안은 집에서 인터넷 못 쓰겠네 헣헣 노루발 72   2016-11-28 2016-11-28 08:46
다음달엔 유튜브 보지 말아야겠다....  
474 처음으로 학점 4점대를 넘겨봤네요. [8] 외계생물체 72   2019-01-04 2019-01-04 19:57
자랑할 곳이 없어서 여기라도 자랑해봅니다. 헤헤헤헤헤헿헤헿ㅎㅎㅎ  
473 멘트가 시멘트였어 [1] file 흑곰 72   2019-07-15 2019-07-15 17:41
 
472 안녕하세요~ 오랜만에 찾아뵙습니다. [6] 규라센 72   2019-12-03 2019-12-12 23:40
야심한 밤..... 은 그냥 야근해서 그렇고. 오래간만에 찾아뵙고 인사드립니다! 다들 안녕히 잘 계시죠? 자주 찾아와서 놀고싶네요 ㅎ  
471 . 기린의똥 72   2007-06-10 2008-03-21 15:59
생각해봤는데어둠대륙은어두워서안보이지않나 ?  
470 기분을 전환시키는 방법좀... [3] 방랑의이군 72   2007-02-03 2008-03-21 15:44
하는 일이 잘 되지 않아서 지루하고 짜증나고 그렇습니다... 기분을 전환하고 즐거워질 수 있는 방법 추천좀  
469 세상의진리 키아아 72   2006-02-12 2008-03-21 06:44
그것은 인간 인간이라는것은 無에서 나와 有로 살다가 다시 無 로 돌아가는것이다. 그런삶을 왜 사는가. 그것은 더욱더 보람있게 살아서 자신의 心身을 충족시키고 세상을 깨닫는것. 그성이 세상의 진리이자 원칙. 세상은 우왕웅  
468 요즘 돌죽 클리어 [2] file 노루발 71   2024-03-31 2024-04-01 10:32
 
467 히오스 팀 레벨을 빠르게 올리는 방법 [3] 노루발 71   2021-05-20 2021-05-26 17:28
혼둠에 불어온 히오스 열풍이 당황스럽지만 물 들어올 때 노 젓자는 생각으로 히오스 관련 글을 몇개 써봅니다. 저자약력: - 폭풍리그 최고등급 브론즈4 - 다인큐 빠대 버스충 - 포브스 선정 "레벨값을 못하는 사람" 1위 ------------------------------------...