<div>#include <iostream><span class="Apple-tab-span" style="white-space:pre;"> </span>// 80,23</div> <div>#include <conio.h></div> <div>#include <stdio.h></div> <div>#include <stdlib.h></div> <div>#include <string.h></div> <div>#include <time.h></div> <div>#include <windows.h></div> <div>#include <cstdio></div> <div>#include "Player.h"</div> <div>#include "Enemy.h"</div> <div>#include "Bullet.h"</div> <div>#include "Game.h"</div> <div><br></div> <div>#define SCREENX 80<span class="Apple-tab-span" style="white-space:pre;"> </span>// 화면 넓이</div> <div>#define SCREENY 24<span class="Apple-tab-span" style="white-space:pre;"> </span>// 화면 높이</div> <div>#define delay(n) Sleep(n)<span class="Apple-tab-span" style="white-space:pre;"> </span>// n/1000초만큼 시간 지연</div> <div>#define ENEMYNUM 35<span class="Apple-tab-span" style="white-space:pre;"> </span>// 적기, 적총알 수</div> <div>using namespace std;</div> <div><br></div> <div>void main()</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);<span class="Apple-tab-span" style="white-space:pre;"> </span>// 핸들값 얻어오기</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>Game<span class="Apple-tab-span" style="white-space:pre;"> </span>*game;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>Player<span class="Apple-tab-span" style="white-space:pre;"> </span>*player;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>CBullet *pbullet;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>CBullet *pDelBullet;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>Enemy<span class="Apple-tab-span" style="white-space:pre;"> </span>*enemy[ENEMYNUM];</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>CBullet<span class="Apple-tab-span" style="white-space:pre;"> </span>*ebullet[ENEMYNUM];</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>clock_t startTime, endTime;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int count;<span class="Apple-tab-span" style="white-space:pre;"> </span>// 프레임 카운트</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int i;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int selectMenu;<span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>startTime = clock();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>// 메뉴 선택 변수</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>bool cur_key = false;<span class="Apple-tab-span" style="white-space:pre;"> </span>// 총알 발사 체크 변수</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>bool old_key = false;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>bool check = 1;<span class="Apple-tab-span" style="white-space:pre;"> </span>// 플레이어 총알 삭제 체크 변수</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>CBullet<span class="Apple-tab-span" style="white-space:pre;"> </span>*bullet_head = NULL;<span class="Apple-tab-span" style="white-space:pre;"> </span>// 플레이어 총알 linked list 헤트</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>CBullet<span class="Apple-tab-span" style="white-space:pre;"> </span>*bullet_tail = NULL;<span class="Apple-tab-span" style="white-space:pre;"> </span>// 플레이어 총알 linked list 테일</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for(;;)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>SetConsoleTextAttribute(hStdOut, FOREGROUND_INTENSITY);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cout<<endl<<endl<<endl<<endl<<endl;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cout<<"\t\t//////////////////////////"<<endl;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cout<<"\t\t// 난 이 도 //"<<endl;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cout<<"\t\t//////////////////////////"<<endl;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cout<<"\t\t// //"<<endl;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cout<<"\t\t// 1. Easy //"<<endl;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cout<<"\t\t// //"<<endl;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cout<<"\t\t// 2. Nomal //"<<endl;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cout<<"\t\t// //"<<endl;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cout<<"\t\t// 3. Hard //"<<endl;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cout<<"\t\t// //"<<endl;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cout<<"\t\t// 4. Exit //"<<endl;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cout<<"\t\t//////////////////////////"<<endl;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cout<<"\t\t선택 하세요 : ";</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cin>>selectMenu;</div> <div><br></div> <div>//////////////////////////////////////////////////////////////////////////////////</div> <div>//<span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>//<span class="Apple-tab-span" style="white-space:pre;"> </span>게임 초기화</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>game = new Game(selectMenu);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>player = new Player(1,"<<A>>", SCREENX/2, SCREENY);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>game->SetCursorType(NOCURSOR);<span class="Apple-tab-span" style="white-space:pre;"> </span>// 화면 에서 커서 안보이게함</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>game->ScreenClear();<span class="Apple-tab-span" style="white-space:pre;"> </span>// 화면 지우기</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>count = 0;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for(i =0; i< ENEMYNUM; i++)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>enemy[i] =NULL;<span class="Apple-tab-span" style="white-space:pre;"> </span>// 적 객체 초기화</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>ebullet[i] = NULL;<span class="Apple-tab-span" style="white-space:pre;"> </span>// 적 총알 객체 초기화</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(selectMenu == 4)<span class="Apple-tab-span" style="white-space:pre;"> </span>// 메뉴중 4번 이 선택되었을시 </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>exit(0);<span class="Apple-tab-span" style="white-space:pre;"> </span>// 종료<span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><br></div> <div><br></div> <div>//////////////////////////////////////////////////////////////////////////////////</div> <div>//<span class="Apple-tab-span" style="white-space:pre;"> </span>게임루프 시작</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for(;;)<span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div>//////////////////////////////////////////////////////////////////////////////////</div> <div>//<span class="Apple-tab-span" style="white-space:pre;"> </span>키 입력에 따른 처리</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>game->KeyPress();<span class="Apple-tab-span" style="white-space:pre;"> </span>// 키입력</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(!(player->GetExist()))<span class="Apple-tab-span" style="white-space:pre;"> </span>// 플레이어가 죽지 않았을경우</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if( (game->GetLeftMove() == 1) && (player->GetX() > 0))<span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>player->MoveXY(-2,0);<span class="Apple-tab-span" style="white-space:pre;"> </span>// 왼쪽 화살표를 눌렀을 경우 왼쪽으로 이동</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>else if( (game->GetRightMove() == 1) && (player->GetX() < 74))</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>player->MoveXY(2,0);<span class="Apple-tab-span" style="white-space:pre;"> </span>// 오른쪽 화살표를 눌렀을 경우 오른쪽으로 이동</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if( (game->GetUpMove() == 1) && (player->GetY() > 0))</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>player->MoveXY(0,-1);<span class="Apple-tab-span" style="white-space:pre;"> </span>// 윗쪽 화살표를 눌렀을 경우 위로 이동</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>else if( (game->GetDownMove() == 1) && (player->GetY() < 23))</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>player->MoveXY(0,1);<span class="Apple-tab-span" style="white-space:pre;"> </span>// 아랫쪽 화살표를 눌렀을 경우 아래로 이동</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(game->GetFlag() == 0)<span class="Apple-tab-span" style="white-space:pre;"> </span>// esc를 눌렀을경우 게임루프 종료</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>break;</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>pbullet = new CBullet();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(game->GetShotBullet() == 1)<span class="Apple-tab-span" style="white-space:pre;"> </span>// space를 눌렀을경우 총알 발사</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cur_key = true;<span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>// cur_key가 true이고 old_key가 false일때만 총알 발사</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>// cur_key는 space가 눌린경우 true를 대입 받는다</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>// space가 눌리지 않은 경우는 false값을 대입 받는다</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>// old_key는 매 루프 마다 cur_key의 값을 대입 받는다</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>// space가 계속 눌리고 있다면 cur_key와 old_key는 모두 true가 되어</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>// 총알이 발사되지 않는다</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>// space를 누르고 있지 않다가 누른경우</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>// cur_key는 true가 되고 old_key는 false가 되어 총알이 발사 된다</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if( cur_key && !old_key )</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>pbullet->CreateBullet("A", player->GetX()+2, player->GetY());</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>// 총알을 생성한다</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>game->AddNode(&pbullet, &bullet_head, &bullet_tail);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>// 생성된 총알을 linked list에 추가한다</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>else</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>cur_key = false;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>old_key = cur_key;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div>//////////////////////////////////////////////////////////////////////////////////</div> <div>//<span class="Apple-tab-span" style="white-space:pre;"> </span>적기 생성</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(count % 30 == 20)<span class="Apple-tab-span" style="white-space:pre;"> </span>// 적기 모션 0,1</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for(i = 0; i<game->GetEnemyNum(); i++)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(enemy[i] == NULL)<span class="Apple-tab-span" style="white-space:pre;"> </span>// 적 배열이 초기화 되어있을 경우 </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{<span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>enemy[i] = new Enemy(-(i*10), i *2, 0); </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>break;<span class="Apple-tab-span" style="white-space:pre;"> </span>// 0번 모션으로 움직이는 적 생성</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(enemy[game->GetEnemyNum() + i] == NULL)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>enemy[game->GetEnemyNum() + i] = new Enemy(80 + (10 * i), 1 + i * 2, 1);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>break;<span class="Apple-tab-span" style="white-space:pre;"> </span>// 1번 모션으로 움직이는 적 생성</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(count % 30 == 10)<span class="Apple-tab-span" style="white-space:pre;"> </span>//적기 모션 2,3</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for(i = 0; i<game->GetEnemyNum(); i++)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(enemy[game->GetEnemyNum() * 2 + i] == NULL)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>enemy[(game->GetEnemyNum() * 2) + i] = new Enemy(30,0, 2);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>break;<span class="Apple-tab-span" style="white-space:pre;"> </span>// 2번 모션으로 움직이는 적 생성</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(enemy[game->GetEnemyNum() * 3 + i] == NULL)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>enemy[(game->GetEnemyNum() * 3) + i] = new Enemy(50, 0, 3);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>break;<span class="Apple-tab-span" style="white-space:pre;"> </span>// 3번 모션으로 움직이는 적 생성</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(count % 30 == 0)<span class="Apple-tab-span" style="white-space:pre;"> </span>//적기 모션 4,5</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for(i = 0; i<game->GetEnemyNum(); i++)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(enemy[game->GetEnemyNum() * 4 + i] == NULL)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>enemy[(game->GetEnemyNum() * 4) + i] = new Enemy(75, (i * 2) + 1, 4);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>break;<span class="Apple-tab-span" style="white-space:pre;"> </span>// 4번 모션으로 움직이는 적 생성</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(enemy[game->GetEnemyNum() *5 + i] == NULL)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>enemy[(game->GetEnemyNum() * 5) + i] = new Enemy(0, (i * 2), 5);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>break;<span class="Apple-tab-span" style="white-space:pre;"> </span>// 5번 모션으로 움직이는 적 생성</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(count % 50 == 10)<span class="Apple-tab-span" style="white-space:pre;"> </span>//적기 모션 6</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for(i = 0; i<game->GetEnemyNum(); i++)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(enemy[game->GetEnemyNum() *6 + i] == NULL)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>enemy[(game->GetEnemyNum() * 6) + i] = new Enemy(20 + 20*i, 0, 6);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>break;<span class="Apple-tab-span" style="white-space:pre;"> </span>// 6번 모션으로 움직이는 적 생성</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if (count % 50 == 10)<span class="Apple-tab-span" style="white-space:pre;"> </span>//적기 모션 7</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for (i = 0; i<game->GetEnemyNum(); i++)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if (enemy[game->GetEnemyNum() * 7+ i] == NULL)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>enemy[(game->GetEnemyNum() * 7) + i] = new Enemy(25+ 25* i, 0, 7);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>break;<span class="Apple-tab-span" style="white-space:pre;"> </span>// 7번 모션으로 움직이는 적 생성</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div>//////////////////////////////////////////////////////////////////////////////////</div> <div>//<span class="Apple-tab-span" style="white-space:pre;"> </span>적 총알 생성</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int shootCount = 0;<span class="Apple-tab-span" style="white-space:pre;"> </span>// 루프 10번당 발사될 적 총알 수</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>static int shoot = 0;<span class="Apple-tab-span" style="white-space:pre;"> </span>// 발사될 총알 번호 저장</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int rnd;<span class="Apple-tab-span" style="white-space:pre;"> </span>// 렌덤값 저장</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>switch(selectMenu)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>case 1 :</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>shootCount = 1;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>break;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>case 2 :</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>shootCount = 3;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>break;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>case 3 :</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>shootCount = 5;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>break;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>while( shootCount && (count % 10 == 4))</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>rnd = rand() % ENEMYNUM;<span class="Apple-tab-span" style="white-space:pre;"> </span>// 0보다 크고 적 숫자보다 작은 임의의정수</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(enemy[rnd] != NULL && ebullet[shoot] == NULL)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{<span class="Apple-tab-span" style="white-space:pre;"> </span>// 임의의 정수의 적이 있고 shoot카운터에 해당하는</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>// 적 총알이 생성되지 않았을경우</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>ebullet[shoot] = new CBullet();<span class="Apple-tab-span" style="white-space:pre;"> </span>// 총알 할당</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>ebullet[shoot]->CreateBullet("v", enemy[rnd]->GetX()+2, enemy[rnd]->GetY());</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>//선택된 적의위치에 총알 생성</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>shoot++;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>shootCount--;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(shoot == ENEMYNUM)<span class="Apple-tab-span" style="white-space:pre;"> </span>// 총알 카운터가 적수를 넘어갈때</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>shoot = 0;<span class="Apple-tab-span" style="white-space:pre;"> </span>// 0 대입 </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div>//////////////////////////////////////////////////////////////////////////////////</div> <div>//<span class="Apple-tab-span" style="white-space:pre;"> </span>화면 출력</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for(i = 0; i < ENEMYNUM; i++)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(enemy[i] != NULL)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>enemy[i]->Move();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(enemy[i]->GetY() >= 0 && enemy[i]->GetY()+1 <= SCREENY+1 && enemy[i]->GetX() >= 0 && enemy[i]->GetX()+5 <= SCREENX)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>game->ScreenPrint(hStdOut, PINK,enemy[i]->GetX(), enemy[i]->GetY(), enemy[i]->GetType());</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>else</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>delete enemy[i];</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>enemy[i] =NULL;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(ebullet[i] != NULL)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>ebullet[i]->MoveBullet(0,1);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(ebullet[i]->GetY() >= 0 && ebullet[i]->GetY()+1 <= SCREENY+1 && ebullet[i]->GetX() >= 0 && ebullet[i]->GetX()+5 <= SCREENX)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>game->ScreenPrint(hStdOut, WHITE,ebullet[i]->GetX(), ebullet[i]->GetY(), ebullet[i]->GetType());</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>else</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>delete ebullet[i];</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>ebullet[i] =NULL;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}<span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>pbullet = bullet_head;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>while(pbullet)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{<span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>game->ScreenPrint(hStdOut, WHITE,pbullet->GetX(), pbullet->GetY(), pbullet->GetType());</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>pbullet->MoveBullet(0, -1);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>// 플레이어 총알, 적</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for(i = 0; i < ENEMYNUM; i++)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(enemy[i] != NULL && game->Crash(pbullet,enemy[i]))</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>player->AddScore(100);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>pDelBullet = pbullet;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>check = 0;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>delete enemy[i];</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>enemy[i] = NULL;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>break;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(pbullet->CheckRange() == 0)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>pDelBullet = pbullet;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>check = 0;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>pbullet = pbullet->pNext;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(check == 0)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>game->DelNode(&pDelBullet, &bullet_head, &bullet_tail);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>check = 1;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(player->GetExist())</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>game->ScreenPrint(hStdOut, RED,player->GetX(), player->GetY(), game->Explosion());</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>else</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>game->ScreenPrint(hStdOut, SKYBLUE,player->GetX(), player->GetY(), player->GetType());</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>game->ScreenPrint(hStdOut, GREEN,0,0," 점수 : ");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>game->ScreenPrint(hStdOut, GREEN,9,0,player->GetScore());</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>game->ScreenPrint(hStdOut, GREEN,12,0," Life : ");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>game->ScreenPrint(hStdOut, GREEN,21,0,player->GetLife());</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>game->ScreenPrint(hStdOut, GREEN, 0, 1, " 경과시간 : ");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>endTime = clock();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>game->ScreenPrint(hStdOut, GREEN, 11, 1, ((double)(endTime - startTime)) / CLOCKS_PER_SEC);</div> <div>//////////////////////////////////////////////////////////////////////////////////<span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div>//<span class="Apple-tab-span" style="white-space:pre;"> </span>충돌 처리</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for(i = 0; i < ENEMYNUM; i++)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>// 플레이어, 적총알</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if( ebullet[i] != NULL && game->Crash(player, ebullet[i]) && player->GetExist() == 0)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>player->SetExist(1);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>player->AddLife(-1);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>delete ebullet[i];</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>ebullet[i] = NULL;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>break;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>// 플레이어, 적 </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(enemy[i] != NULL && game->Crash(player, enemy[i])&& player->GetExist() == 0)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>player->SetExist(1);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>player->AddLife(-1);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>delete enemy[i];</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>enemy[i] = NULL;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>break;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>delay(30);<span class="Apple-tab-span" style="white-space:pre;"> </span>//시간 지연</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>count++;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>game->ScreenClear();<span class="Apple-tab-span" style="white-space:pre;"> </span>// 화면 지우기</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(game->GetExpCount() == 35)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(player->GetLife() <= 0)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>break;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>else</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>player->SetExist(0);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>player->SetPos(SCREENX/2, SCREENY);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>game->setExpCount(0);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>game->ScreenPrint(hStdOut, RED,SCREENX/2-5, SCREENY/2, "Game Over!");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>getch();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>game->ScreenClear();</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>game->SetCursorType(NORMALCURSOR);</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for(i = 0; i < ENEMYNUM; i++)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>// 플레이어, 적총알</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if( ebullet[i] != NULL)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>delete ebullet[i];</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>ebullet[i] = NULL;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>pbullet = bullet_head;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>while(pbullet)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{<span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>// 플레이어 총알, 적</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>pDelBullet = pbullet;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>pbullet = pbullet->pNext;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>game->DelNode(&pDelBullet, &bullet_head, &bullet_tail);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>delete game;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>delete player;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div>} </div> <div><br></div> <div><br></div> <div>메인 cpp소스인데 count가 프레임 카운트라는데 왜 만든건지 모르겠습니다 특히 적기 를 만들 때 if 조건문에 왜들어가는지 아무리 봐도 이해가 안가네요 ;; 그리고 모션 7은 왜 난이도 1에서는 나오는데 2~3에서는 안나올까요 ? ㅠㅠ</div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.