program assignment 1

 

그래픽스 프로그래밍(321190) 실습 #1


– 2D graphics & primitives


(321190)


강사: 박경신


2009년 3월 19일




제출 방법: 2009년 4월 6일(월) 밤12시까지


(e-learning 강의실에 실행파일과 소스코드와 리포트를 전부 “학번이름_숙제1.zip”으로 묶어서 제출하도록 합니다. 또한, 소스코트 폴더에 .cpp만 담지 말고 비주얼 스튜디오에서 만든 프로젝트 폴더를 담기 바랍니다.)




참고자료: spaceinvader_starter.zip & primitives.cpp & glutText.cpp


http://en.wikipedia.org/wiki/Space_Invaders




0. Display window 크기는 400 x 400로 한다.




1. Simple Space Invaders 게임을 만든다. (30점)


     -gluOrtho2D(0, 200, 0, 200)를 사용한다.


-게임의 Finite State Machine을 구현한다.


   -게임의 상태는 시작, 게임중, 종료로 한다.


-keyboard


   -‘space bar’-key는 게임을 ‘시작’하는데 사용된다.


   -‘space bar’-key는 게임 플레이시 우주선(ship)에서 레이저총알 (bullet)을 쏘는데


   사용된다.


   -‘space bar’-key는 게임이 종료된 후에 다시 게임을 ‘시작’할 때에도 사용된다.


   -‘left/right arrow’-key로는 우주선(ship)을 화면에서 좌우로 움직이게 한다.


-display


   -게임의 상태에 따라서, 게임 시작 시 ‘Press Space-Key to Start’ 메시지를


   glutText 등을 이용하여 화면에 출력한다.


   -게임 중에는 살아 움직이는 모든 객체 (즉, ship, bullets, aliens)를 그린다.


   -게임이 종료되면 ‘Game Over’를 알리고 ’Press Space-Key to Restart’와


   ‘Press Q-Key to Quit’ 메시지를 glutText 등을 이용하여 화면에 출력한다.


-update


   -레이저총알(bullet)이 외계인(alien)을 요격하면 죽는다.


   -일정 시간이 지나면 외계인들이 우주선에 더욱 가까이 다가온다.


   -전체 제한된 게임 시간 내에, 모든 외계인을 요격하여 죽이면 Game Over




2. Ship, Bullet, Alien 클래스를 작성한다. (30점)


-Ship


   -사용자 키 입력으로 우주선의 본체가 좌우로 움직일 수 있다.


-Bullet


   -레이저총알을 발사하면 새로운 총알이 리스트에 추가된다.


   -모든 레이저총알에 대해서, 시간이 증가되면 수명(life)을 증가시키고


   BULLET_LIFE_TIME을 넘어간 총알은 리스트에서 지운다. 그 외의 다른 경우는


   총알의 위치가 앞으로 전진 한다.


-Alien


   -초기화시, 화면 위쪽에 새로운 외계인들이 나타난다.


   -모든 외계인들에 대해서 자기가 총알이 맞았는지(intersect)를 확인하고 맞았으면


   해당 외계인을 리스트에서 지운다.


   -모든 외계인들을 한꺼번에 아래로 전진할 수 있도록 한다.


   -모든 외계인들이 죽었는지 확인할 수 있도록 한다.




3. Score 클래스를 작성한다. (10점)


-Score


   -레이저총알이 외계인을 죽이면, 점수(1개당 100점씩)가 올라가고 화면에


   출력된다.




4. 창의성, 소스코드 주석처리, 리포트 (30점)




5. 사운드 추가 (extra 10점)

Leave a Reply

Your email address will not be published. Required fields are marked *