메뉴 건너뛰기

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

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
공지 (대피소) 혼돈과 어둠의 디스코드 노루발 118   2023-09-05 2023-09-05 16:05
공지 글 작성을 위해서는 회원 가입이 필요합니다. 노루발 4683   2016-02-22 2021-07-06 09:43
465 으아앜 20세기 소년 16권 구했닫 [4] 포와로 272   2004-06-20 2008-03-19 09:34
다운중... 스캔만화 보고있자니 찔려서 만화방에 갔지만 15권밖에 업ㅂ었다 ㅡㅡ  
464 정말 슬라임이 만든 프로그램을 보고 있자면 [2] 혼돈 268   2004-06-20 2008-03-19 09:34
슬라임은 재능이다. 뭐 기본은 노력으로 닦았겠지만... 내가 가르쳐 준 것도 없는데 벌써 저 정도이다. 그러니 흑곰님께서는 실망하지 마시길. 하지만 슬라임은 천재는 아니고 백재정도 흑곰님은 십재가 되겠군. 그나저나 그전엔 흑곰이라서 흑곰이라 막 불렀...  
463 남극은 살아있다. [4] 행방불명 282   2004-06-20 2008-03-19 09:34
http://kfgenius_hb.ilen.net/ 남극을 잊지 않았다면 눌러.  
462 싸릿골에게 C++ 학습에 대한 조언. [9] 大슬라임 397   2004-06-20 2008-03-19 09:34
아무리 모로가도 서울이라지만, 혼돈이 지금 우리[흑곰과 나]에게 가르쳐주는 것으로 봐서 C언어의 쌩기초도 모르는 상태에서 배우기에는 조금 벅찬 것 같소. 자고로 기술의 발전이란 것은 큰 것에서 작은 쪽으로 세분화 되는 것이니 우선은 기초를 다지는게 ...  
461 왜 자꾸 [2] 사과 215   2004-06-20 2008-03-19 09:34
캐르매스님의 이녀석의모험이 하고싶어진다  
460 혼돈님 가르쳐 달라는것이 아니라, [5] 초싸릿골인 280   2004-06-20 2008-03-19 09:34
흐음,,강의는 ,,다음카페 같은데서 찾아보면 돼구요, 모르는건 가끔 물어볼께요,, 준비해야 할것좀,,가르쳐주세요  
459 슬라임 판타지 리메이크 [2] file 초싸릿골인 231   2004-06-20 2008-03-19 09:34
 
458 C언어 말입니다만,,[혼돈님,大슬라임님] [3] 초싸릿골인 285   2004-06-20 2008-03-19 09:34
C 언어 지금부터 배우려고 합니다, 무엇이 필요로 합니까? 프로그램 이름,,좀 가르쳐주세요, 다른 준비물들도, 지금부터 열심히해도, 커서 프로그래머 될 정도 될까요? 간단한 미니게임 만드는게 얼마정도 걸릴까요?  
457 잡통에 미니게임 <大슬라임 씨의 즐거운 새 학살>을 올렸습니다. [2] 大슬라임 250   2004-06-20 2008-03-19 09:34
해볼려면 하시고, 말려면 말고.. 그냥 하염없이 쏴죽이는 할 일 없는 게임이지만 다른 컴퓨터에서는 어느 정도 속도인지 알아보기 위해서라도 다른 분들께 공개.  
456 아무리 지도를 들여다 봐도 [5] 검룡 390   2004-06-19 2008-03-19 09:34
남극 초원섬에... 내가 원하는 들판은 있을 데가 없어 보인다.[특히 고놈의 산이 한몫] 없는걸까..? 넓은 들판. 덧. 7세기 지도. 들여다 봤더니 왜 이름없는 산맥께서 외로워지신 겁니까?  
455 야채죽 게임 가지고 계신 분 [4] 혼돈 402   2004-06-19 2008-03-19 09:34
잡통으로 올려주시길... 생각해보니 이제 용량문제도 없으니 게임&애니에 넣어도 될 듯...  
454 으아아악-! [2] 과학자 235   2004-06-19 2008-03-19 09:34
절권도 수련중에 발목부상.  
453 대한민국. [9] 검룡 332   2004-06-19 2008-03-19 09:34
<대한민국의 특징> 1. 세계 경제를 쥐락펴락하는 일본을 “쪽바리”라 하며 우습게 보는 유일한 종족 2. 세계 유일의 분단국가 3. 세계에서 보기드문 단일민족 4. 암 사망율, 음주 소비량, 양주 수입율, 교통사고, 청소년 흡연율, 국가 부채,각종 악덕 타이틀에...  
452 슬라임 자네 [4] file 검룡 292   2004-06-19 2008-03-19 09:34
 
451 아아, 하루 빨리 게임을 완성하고 싶거늘 [3] 大슬라임 309   2004-06-19 2008-03-19 09:34
오늘도 숙제가 나를 압박한다. 다시 한창 수행평가철이라.. 점수를 걱정하는 건 아니지만 어쨌든 하기는 귀찮구나. "大슬라임의 즐거운 새 사냥"은 이제 새의 생성과 움직임, 그리고 죽음만 처리하면 완성 됨. 점수 표시는 하려고 했으나 문자열 출력을 몰라...  
450 그림은 언제나 진화하고 있다!!!!(어쩌라고....) [7] Kadalin 399   2004-06-19 2008-03-19 09:34
~(~_~)~ 후르바~ 후르바~  
449 아, 쇼킹하다. 야후 검색... [3] 혼돈 331   2004-06-18 2008-03-19 09:34
박동흥이란 이름이 그렇게 없나... 박동흥으로 검색하면 11개의 결과 중 9개가 나에 관련되 것이다. 정말 황당하기 짝이 없다...  
448 이열치열! [4] 행방불명 281   2004-06-18 2008-03-19 09:34
삼계탕 사먹을 돈은 없고, 해서 구한게 바로 떡볶이. 너무 감미로운 양념에 혀가 매료됩니다. 역시 무더위엔 건더기수프를 넣은 떡볶이가 최고.  
447 이런.. [2] 사과 279   2004-06-18 2008-03-19 09:34
델타님 홈피가 트래픽초과를 해버렸다며 잠자리 한마리가 말해주었지요.  
446 가는세월 [3] 과학자 221   2004-06-18 2008-03-19 09:34
어찌 잡으리오.