이래저래 잉여짓을 하다 다시 돌아왔다. 벡터 부분을 추가했는데, 물리쪽은 젬병이라 이게 뭔 개소린지 이해하는 데 한참 오래 걸리는 것 같다. 선형대수 할 때 비슷한 걸 하긴 했는데 말이지.....?.... 아무튼 그거와 별개로도 간단한 문제에 많이 막혔다. 진짜 치X가 오나... 코뼈가 심하게 휜 사람은 뇌에 산소가 부족해서 기억력이 약해진다던데 레알인 것 같다. 내가 이정도로 멍청할 리 없다.ㅠㅠ


오늘 한 것들

  1. 벡터 클래스 연산자 오버로딩(은 사실 오늘 처음 해봤다...... 편하고 좋은듯)
  2. 가속도 부분 추가
  3. 뜬금없는 컴파일 오류 해결
    1. 사용할 수 있는 기본 생성자가 없습니다. 라는 문구와 함께 컴파일이 안됨.
    2. 컴파일이 잘 되던 코드였음. 객체를 하나 더 만드니 컴파일이 안되기 시작.
    3. 원인 -> 걍 말 그대로 기본 생성자가 없었음........ Class(){} 식으로 추가하니 해결 됨(당연하게도). 민망해.
  4. fixed frame per second 추가. 생각보다 되게 루틴이 단순했다.
    1. 보통 딜레이 함수는 ms단위로 있음. 1초는 1000ms. 보통 게임은 60FPS로 동작함. 그럼 우리가 해야할 일은->"1초에 60번 갱신하도록 한다"
    2. 상수를 만든다. 단순히 1000 / FPS값이면 된다. 얘를 DELAY_TIME이라고 부른다 치자.
    3. 게임 내 루프는 대체로 event, update, render 순임. 루프의 시작에는 현재 경과 ms값을 몇몇 함수를 이용해 받아오고(SDL에서는 SDL_GetTicks()를 쓰면 됨), 끝에는 끝난 시점 기준 ms값에서 시작ms값을 뺀 값을 가져온다. 얘를 frameTime이라고 치자.
    4. 루프 끝자락에 DELAY_TIME보다 frameTime이 작은 경우 DELAY_TIME - frameTime 만큼 대기하는 코드를 넣어주면 된다.
  5. InputHandler 추가. 이름은 핸들러인데 정작 싱글톤이다. 아니면 원래 핸들러=싱글톤인건가. 지금까지 싱글톤을 굉장히 많이 쓴 느낌이다.?


2일차 때와 비교해서 겉으로 크게 두드러지는 차이점은 없으므로 스샷은 생략.

이제 점점 이동 파트에 들어갈 것 같다! 개인적으로 횡스크롤은 조작감을 많이 따지는데, 특유의 부드러운 가속 움직임은 은근히 만들기 힘든 것 같다. 상용 게임도 조작감이 굉장히 나쁜 경우를 많이 보았기도 하고. 생각해보면 슈퍼마리오는 그런 장르의 시초격임에도 불구하고 독보적인 정석이 아닌가 싶다.

+ Recent posts