메뉴 건너뛰기

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

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 추천 수 날짜 최근 수정일
공지 (대피소) 혼돈과 어둠의 디스코드 노루발 116   2023-09-05 2023-09-05 16:05
공지 글 작성을 위해서는 회원 가입이 필요합니다. 노루발 4680   2016-02-22 2021-07-06 09:43
2045 세상이 많이 좋아졌군요 [1] 네코이름 552   2013-09-07 2013-09-17 07:25
방금 네코 RPG xp란 프로그램을 보고 왔습니다   설마하니 이런 프로그램까지 나오게 되다니.. 이제 과거 명작들만 다운받을 환경이 마련되면 좋을텐데(?)   아직 해상도 조절 기능이나 많이 추가가 필요한 것 같지만.. 그래도 놀랍네요.   ps. 새폰 샀는데 기...  
2044 혼둠 다이어트 결과 보고 [4] 혼돈 552   2015-12-09 2015-12-28 00:47
어제 10MB 이상 첨부 자료 및 등록되지 않은 대기자료를 모두 정리한 결과 3.7G까지 용량을 줄였습니다. 대부분 덩치 큰 게임 첨부 파일이 원인이었습니다. 일단 전부 제 드롭박스 계정에 옮기고 링크 거는 식으로 고쳤는데 혹시 마음에 안 드시면 다운 받으신...  
2043 사격 개시!! [6] file 엘판소 552   2015-10-20 2015-10-21 23:35
 
2042 여러분 싸우지 마요 지나가던명인A 553   2008-04-20 2008-04-20 10:00
We are the world 잖습니까 모두 사이좋게 지내요 시비걸지 말고 네?  
2041 채팅방 + 지도 에서 개선점 [3] 장펭돌 553   2008-10-07 2019-03-19 23:16
사실상 채팅방 + 메뉴 + 지도 라는 선택지가 있기는 하지만 서도 그걸 쓰는사람은 아마 드물것 같네요, (개인적 생각이지만) 아마 대부분 채팅방 + 지도 를 사용하실텐데 그렇게 되면 불편한 점이 하나 있습니다. 반드시 다시 지도화면으로 넘어간 다음에야 다...  
2040 혐짤 메이커 박뮤초 [7] file 뮤턴초밥 553   2008-10-07 2008-10-08 03:29
 
2039 [2] 요한 553   2009-02-06 2019-03-19 23:14
저는 개인적으로 남의 기록을 좋아합니다 똥똥배님이 만드신 만화책를 혼돈과 어둠에서 판매한다면 전 구매할 의향이 있습니다 그냥 그렇다구요  
2038 내일은 동원훈련을 갑니다. [2] 장펭돌 553   2012-07-03 2012-07-03 16:22
화전에 있는 60사단 동원훈련장이네요. 으으 기대반 걱정반 양념반 후라이드반 같은 느낌이네요  
2037 서버이전 합니다. 똥똥배 553   2013-04-17 2013-04-17 07:11
팀장닷컴 고급형x2 서비스를 쓰고 있는데, (HDD/트래픽 11GB, 년 20만원) 가상호스팅 서비스가 월 18900원에 나왔길래 (HDD 100GB, 트래픽 20GB) 한 달에 내는 돈은 별 차이 없고, 성능은 월등히 좋아지길래 신청했습니다. 20대 한정이라고 되어 있어서 어찌 ...  
2036 こいの あないも [3] 귀신 554   2004-05-25 2008-03-19 09:34
청어알도 맛있어  
2035 저 아래에 병원살인사건에 대한 고찰 [1] 사과 554   2004-06-01 2008-03-19 09:34
1.알리바이 꽃집주인-휴일 수위-4층을 순찰중 ∴둘다 알리바이가 아리송함 이것만보고 범인을 맞출있있다면 당신은 천재!! 2.그렇다면...!!(추정) 알리바이를 듣고 범인을 알게되었다는 경찰... 그의정체는 뭐지? 제일 수상한사람은 경찰임 그런 알리바이가지고...  
» 새 학살 main.cpp 공개 [4] 大슬라임 554   2004-06-20 2008-03-19 09:34
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(backbuffe...  
2033 집에서 개키우게 됬다 [4] 지나가던명인A 554   2008-06-15 2008-06-16 06:49
근데 잘려는데 개가 자꾸 방문 앞에서 헥헥 거림 아오 빡쳐  
2032 새해 첫 글 네모상자 554   2010-01-01 2010-01-01 09:03
새해 복 많이 받으세요^^  
2031 제 8 회 똥똥배 대회 배너 그려주실 분~ [3] 똥똥배 554   2010-12-05 2010-12-06 09:17
못 그려도 좋으니 누군가 좀 그려주시면 감사. 사이즈는 오른쪽에 보이는 샤덴 프로이데처럼 180x100이면 됩니다. 당연하지만, 제 8 회 똥똥배 대회 글자는 모두 들어가 있어야 됩니다.  
2030 게임개발과정 공개 및 슬픔의 후기 [4] file 흑곰 554   2012-03-04 2012-03-06 10:07
 
2029 대체 무슨 현상인지 [4] 대슬 555   2009-01-10 2009-01-11 07:28
집에 인터넷이 연결이 되었는데 네이트온/MSN 메신저는 접속이 되는데 웹사이트 접속 시에는 접속이 안 되거나 모뎀을 방불케하는 느린 속도를 자랑하고 있음. 미치겠네요. 소설 올려야 되는데 계속 안 되서 결국 피시방까지 왔음. 아 빡쳐  
2028 병원살인사건 [1] 케르메스 556   2004-06-01 2008-03-19 09:34
--------- 아무튼 자주 못 오는 기념으로 문제를 내주마 어느 사람이 살해당했다 그 남자는 교살당했으며 증거는 하나도 발견할 수 없었다 경찰은 평소 원한관계에 있던 두 명을 지목했다 한 명은6 층짜리 병원 전체를 담당하는 수위고 한 명은 꽃집주인이였...  
2027 오타발견 쿠어어어 [1] 요한 556   2008-04-13 2008-04-13 01:10
백과사전 혼둠과 어둠의 땅. 혼돈과 어둠의 땅으로 수정바랍니다.  
2026 전 예언가였음. [4] 똥똥배 556   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