1619, 1/81 회원가입  로그인  
   sihun1113
   <샤오쓰 타로>4.첫화면구현pri.h

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=1784 [복사]


이번 강좌는 샤오쓰 타로의 첫화면을 구현하겠습니다.



첫화면은 우선 기본적으로  베이스가되는 그림과 틀이 필요하군요.



자, 그럼 틀을 만들어 볼까요?



먼저 소스를 보시겠습니다.



/*첫 화면의 출력부분
기본 틀출력,기본첫메뉴버튼 출력*/
void pri::first()
{
     gotoxy(0,0);//32(64)*30사이즈
     WHITE;
     cout<<"┌──────────────────────────────┐";
     cout<<"│               ";
     YEL;
     cout<<",'";
     WHITE;
     cout<<"                                           │";
     cout<<"│             ";
     YEL;
     cout<<",',',,,',,',";
     WHITE;
     cout<<"                                   │";
     cout<<"│           ";
     YEL;
     cout<<",','',', ',',,'',,',";
     WHITE;
     cout<<"                             │";
     cout<<"│          ";
     YEL;
     cout<<",' ',',,,',  ,',,'''";
     WHITE;
     cout<<"                              │";
     cout<<"│          ";
     YEL;
     cout<<"',',,',,',',,','',',,'";
     WHITE;
     cout<<"                            │";
     cout<<"│          ";
     YEL;
     cout<<",''    ,',', ,',',  '";
     WHITE;
     cout<<"                             │";
     cout<<"│           ,      ";
     YEL;
     cout<<"'        ','";
     WHITE;
     cout<<"                              │";
     cout<<"│           .   o      o     ";
     YEL;
     cout<<",'";
     WHITE;
     cout<<"                              │";
     cout<<"│            .     :       .                                 │";
     cout<<"│             .      _    .                                  │";
     cout<<"│              .        .                                    │";  
     cout<<"│                ` . .                                       │";  
     cout<<"│     * . . . . ";
     HIGH;
     cout<<",..PpP.,";
     WHITE;
     cout<<" . .*                                │";
     cout<<"│    ";
     YEL;
     cout<<"8888888";
     WHITE;
     cout<<"',`'";
     HIGH;
     cout<<"`      ,";
     WHITE;
     cout<<"'`,`'";
     YEL;
     cout<<"88";
     WHITE;
     cout<<"                              │";
     cout<<"│  ";
     YEL;
     cout<<"88888888888";
     WHITE;
     cout<<",'`";
     HIGH;
     cout<<",    ,";
     WHITE;
     cout<<"`'`";
     YEL;
     cout<<"888888";
     WHITE;
     cout<<"                             │";
     cout<<"│ ";
     YEL;
     cout<<"8888888 88888";
     WHITE;
     cout<<",'";
     HIGH;
     cout<<"`    .";
     WHITE;
     cout<<"'";
     YEL;
     cout<<"888888888";
     WHITE;
     cout<<"                            │";
     cout<<"│";
     YEL;
     cout<<"888888   888888";
     WHITE;
     cout<<".";
     HIGH;
     cout<<"`bBBb`";
     YEL;
     cout<<"8888   8";
     WHITE;
     cout<<"                              │";
     cout<<"│ ";
     YEL;
     cout<<"8888888  888888";
     WHITE;
     cout<<"`pPPp";
     YEL;
     cout<<"88888   8";
     WHITE;
     cout<<"                              │";
     cout<<"│  ";
     YEL;
     cout<<"8888888, 88888      8888  ";
     WHITE;
     cout<<",.``,'                          │";
     cout<<"│------------------------------------------                  │";
     cout<<"│                                                            │";
     cout<<"│                                                            │";
     cout<<"│                                                            │";
     cout<<"│                                                            │";
     cout<<"│                                                            │";
     cout<<"│                                                            │";
     cout<<"│                                                            │";
     cout<<"│                                                            │";
     cout<<"└──────────────────────────────┘";
}



화면을 실행해보면 클 상자틀안에 안내를위한 기본그림이 찍혀나옵니다.



소스를 봐도 별것 없군요. 2번째 강좌에서 설명한 부분인 색깔바꾸기를 이용하여



색깔을 바꿔가면서 출력을 한것빼곤 이렇다하게 어려운 부분이 없습니다.



다만 이렇게 콘솔 프로그램의 틀을 만들면



다음 프로그래밍의 구현부터 틀의 제약이 가해지므로 신중히 사이즈를 고려해야합니다



잊지 마세요~@





이렇게 그림까지 넣은 틀을 만들어서 컴파일을 해보니



우상단이 뭔가 허전하군요



이럴땐 이펙트가 필요하지요.



전 별이펙트를 넣어보았습니다.



/*별(스타) 이펙트 부분
별이떨어지는(유선)의 이펙트를 화면 우측상단에 출력해준다.*/
void pri::stareffect()
{
     //st0
     WHITE;
     gotoxy(53,1);
     cout<<"/";
     Sleep(50);
     gotoxy(52,2);
     cout<<"/";
     Sleep(50);
     gotoxy(51,3);
     cout<<"/";
     Sleep(50);
     gotoxy(50,4);
     cout<<"/";
     Sleep(50);
     //st1
     gotoxy(49,5);
     cout<<"/";
     gotoxy(60,1);
     cout<<"/";
     Sleep(50);
     gotoxy(48,6);
     cout<<"/";
     gotoxy(59,2);
     cout<<"/";
     Sleep(50);
     gotoxy(47,7);
     cout<<"/";
     gotoxy(58,3);
     cout<<"/";
     Sleep(50);
     gotoxy(46,8);
     YEL;
     cout<<"☆";
     WHITE;
     gotoxy(57,4);
     cout<<"/";
     //st2
     Sleep(50);
     gotoxy(56,5);
     cout<<"/";
     gotoxy(60,6);
     cout<<"/";
     Sleep(50);
     gotoxy(55,6);
     RED;
     cout<<"☆";
     WHITE;
     gotoxy(59,7);
     cout<<"/";
     Sleep(50);
     gotoxy(58,8);
     cout<<"/";
     Sleep(50);
     gotoxy(57,9);
     cout<<"/";
     Sleep(50);
     gotoxy(56,10);
     HIGH;
     cout<<"☆";  
     WHITE;
}



역시나 별것 없습니다



저번과 다름이라면 Sleep문을 넣어서 딜레이를 건것인데요.



Sleep(1000);을 하면 1초간의 딜레이가 걸립니다.



50은 0.05초이지요.



또한 이Sleep문을 쓸려면 windows.h를 인클루드해야하는데



앞서 show.h에서 하였기때문에 이 내용이 들어가는 파일인 pri.h에는



#include "show.h"



만 하면 된답니다.







이제 위쪽의 이펙트까지 넣었으니 환영인 사가 필요할것 같습니다.



이 환영인사는 화면의 오른쪽 중간에 넣을 건데요..



음...



생각을 해보죠..



다음 강좌로 이어집니다.
[출처] <샤오쓰 타로>4.첫화면구현pri.h (C언어를 배우자) |작성자 해커푸


  Hit : 8360     Date : 2011/06/04 08:19