이번에는 우주선이 움직이는 것을 표현해 볼 것이다.
오른쪽으로 이동하면서 우주선이 빙글빙글 돌면서 날라간다. 날라가면서 크기도 작아진다. 그리고 화면 밖으로 벗어나게 되면 그 반대에서 다시 나타나서 계속 움직이는 것을 만들 것이다.
(update)
우주선을 회전하게 하는 것을 각도 설정, 크기 설정에서 크기만 넣어주면 된다. 어떻게 작아지는지 어떻게 이미지 생성 위치가 바뀌는지에 대한 것은 애니메이션 그리는 것에서 우리가 다 만들어 놓은 것이다. 우리는 단지 회전각도와 위치만 설정해주면 된다.
(상수)
회전 상수는 180으로 정의 되있어서 초당 180도를 회전한다는 의미이다.
SCALE_RATE 상수는 0.2로 정의 되어있어 초당 100픽셀만큼 움직인다는 의미이다.
SHIP_SCALE 상수는 1.5로 정의되어있는데 우주선이 원래 크기에서 1.5배로 커진다는 의미이다.
(실행 화면)
이제는 화살표 키 입력을 받아 우주선의 움직임을 통제 해 볼것이다.
그런데 키를 때면 바로 우주선이 멈춘다.
키를 때도 그 방향으로 계속 움직이게 수정해 줄 것이다.
반대 키를 누르면 그 방향에대한 속도가 줄게 할 것이다. 그러기 위해서는 속도라는 값이 들어가야한다.
마지막으로
속도가 좀 느리다는 느낌이 있었다.
키 입력을 받아 우주선이 움직이게 하는 것까지 마무리했다.!!
(update)
(실행화면)
그런데 키를 때면 바로 우주선이 멈춘다.
키를 때도 그 방향으로 계속 움직이게 수정해 줄 것이다.
반대 키를 누르면 그 방향에대한 속도가 줄게 할 것이다. 그러기 위해서는 속도라는 값이 들어가야한다.
키 입력에 따라 속도 값을 수정해주고, 그 속도만큼 움직이게 하면 되는 것이다.
(update)
키를 때었을 때 점차 속도가 줄어들게 하고 싶었다. 그래서 update 아래에 아래 코드를 추가했다.
(추가한 코드)
GRAVITY는 실제 중력값은 아니고 속도가 감소한다는 의미의 상수를 넣었다.
(추가 상수)
(실행 화면)
마지막으로
속도가 좀 느리다는 느낌이 있었다.
그래서 스페이스바를 누르면 부스트 모드로 기존 속도의 2배로 날라가게 만들었다.
(추가한 코드)
스페이스바 입력을 받게 하기 위해 상수로 추가했다.
(스페이스바 추가)
그리고 boost 여부에 따라 2배로 움직이게 만들었다.
(boost 모드)
키 입력을 받아 우주선이 움직이게 하는 것까지 마무리했다.!!
(* 참조 - 2D 게임 프로그래밍, 찰스 켈리)
'Programing > Game Programing' 카테고리의 다른 글
(게임프로그래밍) - 충돌 ( 화면안에 가두기 ) (0) | 2018.02.23 |
---|---|
(게임프로그래밍) 간단한 애니메이션 추가 (0) | 2018.02.07 |
스프라이트를 이용하여 이미지 그리기 (0) | 2018.02.05 |
게임 엔진 기초 틀 만들기(2) - Input Class (0) | 2018.01.31 |
게임 엔진 기초 틀 만들기(1) - Game Class (0) | 2018.01.31 |