메뉴 건너뛰기

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

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 최근 수정일
공지 (대피소) 혼돈과 어둠의 디스코드 노루발 144   2023-09-05 2023-09-05 16:05
공지 글 작성을 위해서는 회원 가입이 필요합니다. 노루발 4702   2016-02-22 2021-07-06 09:43
689 오늘 하루 혼둠 접속이 안 되서 죄송했습니다. [7] 똥똥배 426   2015-11-09 2015-11-10 08:28
제가 겁에 질려서 사이트를 닫고 도망쳤습니다. 완전 폐쇄 시키려고 하다가 많은 분들이 열심히 창작한 자료를 제가 불태울 권한은 없기에 다시 열었습니다. 급히 닫고 도망치느라 몇군데는 망가졌습니다. SNS도 끊었고, 혼둠도 한동안 안 올 겁니다. 관리자 ...  
688 다 날아갔네 [1] file 노루발 284   2015-11-09 2015-12-07 06:56
 
687 엘판소 이 사람한테 몇 가지 좀 물어봤는데... [2] file 외부인 540   2015-11-09 2015-11-13 19:47
 
686 해야 할 것들 [5] 노루발 286   2015-11-09 2015-11-11 23:24
날 잡아서 해야 할 것들 1. 지도 복구 / 리뉴얼 2. 최신 글/최신 덧글 보기 기능 복구 3. 제 18회 똥똥배 대회 개최 - 대회 틀 정하기 (심사위원, 심사 부문, 상금, 기타 대회 규칙 개정) - 대회 홍보 - 대회 개최(참가작 받기, 심사, 대회 마무리) 꾸준히 해...  
685 제 18회 똥똥배 대회 가안 [8] secret 노루발 10   2015-11-09 2015-11-19 21:38
비밀글입니다.  
684 혼둠이 안 없어져서 다행입니다. [3] 대슬 366   2015-11-09 2015-11-10 08:30
뭐 평소에 잘 들어오지도 않고 글도 안 썼지만, 중2병 충만했던 시절부터의 추억이 서려있는 곳이라서 없어지면 좀 섭섭할 뻔했네여. 똥똥배대회도 계속 이어지길 기원합니다.  
683 대출산부족 작업 시작 file 혼돈 411   2015-11-10 2015-11-10 07:32
 
682 Lua랑 Love2d 강좌를 혼둠에 연재해볼까 했지만 [1] 노루발 237   2015-11-10 2015-11-12 08:13
아무도 안 오는 사이트에서 아무도 안 쓰는 라이브러리 강좌를 하자니 이상해서 그만두었습니다. 아니, 그래서 더 의미가 있으려나. 이름없는 거인이 죽어 쓰러지면서 여기저기가 무너지고 부숴졌는데 그런 부분을 고치는 것이 급선무라고 생각합니다. 강좌는 ...  
681 대문 만들었습니다. [1] 노루발 251   2015-11-10 2015-11-10 20:16
공사중... 이라고만 써놓으면 너무 외롭잖아요. 그래서 대문 만들었습니다. 방문자들의 손발을 책임진다! 핫하! 오랫만에 이런 거 끄적이고 있으니 즐겁네요. 이건 가건물일 뿐이고, 진짜로는 멋진 지도를 만들어주실거라 믿어 의심치 않습니다. (누군가를 본...  
680 비밀소년님 아직 살아있나요? [2] 심심이 327   2015-11-11 2015-11-29 19:07
다음카페에 비밀소년님 사이트가 있지만 스팸광고뿐이네요... 카페 등업 요청을 해도 묵묵부답  
679 맵 찬조 할 의향 있습니다 [4] 우켈켈박사 269   2015-11-11 2015-11-11 07:11
맵 사이즈랑 건물 사이즈는 어느 정도면 될까요?  
678 도서관 이야기 노루발 174   2015-11-12 2015-11-12 21:26
제가 맨 처음 혼둠에 오게 된 계기는 이상한 링크 타고 들어온 다음 오 이런 곳도 있구나 하고 잊어버려서 "아이디어 많이 모인 사이트" 라고 수소문해서 온 것입니다. 가끔 심심하면 도서관을 정주행 합니다. 사람들이 이런 생각을 하는구나. 이걸 보는 게 재...  
677 게임 평가를 원하는지 여부를 확인해 볼 필요가 있을지도 [2] 혼돈 273   2015-11-12 2015-11-12 22:58
어제 노루발님 기획에 버릇처럼 댓글을 달아버렸는데 혹시 상처가 되었을지도 모르니 사과 드립니다. 평가를 원하는 사람이 있을 거고 원치 않을 사람이 있을 건데 괜한 평가는 폭력일 수 있겠죠. 대회 규정에 명확히 적어두거나 평가 희망 여부를 선택하게 해...  
676 대회 규정에 평가 관련 규정을 넣어야 할까요. [4] 노루발 231   2015-11-13 2015-11-13 00:55
생각 자체는 예전에도 생각하셨던 것 같군요. http://hondoom.com/zbxe/index.php?mid=review&document_srl=794596 "똥똥배 대회는 창작자들에게 창작 계기를 만들어 주기 위해서 열리고 있습니다. 하지만 그렇다고 못 만든 게임에 상을 줄 순 없으니 날카...  
675 Lua 강좌 목차 노루발 185   2015-11-13 2015-11-13 07:35
1. 입력과 출력 2. 변수 3. 조건 처리 4. 반복 5. 배열 6. 함수 7. 유용한 라이브러리 함수들  
674 <대출산시대DX> PC판 릴리즈 했습니다. 혼돈 289   2015-11-13 2015-11-13 23:42
가격은 4.50$ 입니다. http://ddb.itch.io/age-of-procreation-dx  
673 알만툴 시리즈가 많은데 [2] 데자와 278   2015-11-14 2015-12-07 06:54
다들 선호하는 버전은 몽가요  
672 텀블벅 후원 받는 거 어때요? [3] 혼돈 305   2015-11-15 2015-11-15 16:06
저는 성격상 부담되서 중단했지만 사실 받는 게 무조건 좋습니다. 홍보도 되고 상금이 많이 모여서 참가작도 많아지구요. DVD 제작하는 거라든가 리워드 관련은 제가 도움드릴 수 있습니다. 아니면 DVD 작업은 제가 봉사할 수도 있구요. 아마 이대로 18회 진행...  
671 막나아2.선왕 226   2015-11-20 2015-11-20 22:43
生명책 장성호(26)선왕,장성ii호호(4):baby,권신예(32)작가:권신예,장보희(4),장승혁(6),장철희(9), 윤민희(46)여왕 족보 ??? ??? ??? ??? -막나아2- 장성호(31) <자칭?> 그랜드 카이져 형>??? 선왕(26+5) 윤민희(46)??????나는 뭔데... 의사던가? 주부던가? (...  
670 나마아냐바라밀다 심경 [1] 고냥 178   2015-11-21 2015-11-21 19:19
냥냐냥냠