inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

홍정모의 게임 만들기 연습 문제 패키지

1.3 상호작용 맛보기 - 키보드 입력과 반응

여러발의 탱크 구현 질문이 있습니다.

272

지호손

작성한 질문수 39

0

교수님 깃을 fork해서 multi bullet 구현을 해보았습니다.

unique_ptr를 이용해서 구역을 벗어나면 해당 unique_ptr를 reset해서 delete하게 구현했습니다. 구현간에 궁금한 점이 있습니다.

질문 1)

https://github.com/shonjiho/GameDevPracticePackage/blob/master/Chapter1/Lecture1/TankExample.h#L74-L76

화면을 벗어났는지 범위를 체크하는함수를 isOutMap으로 구현했는데 Game2D Class의 width와 height와는 다른 단위(?)를 가진 것 같아서 할 수 없이 매직넘버를 어림잡아 넣게되었습니다. 어떤 값을 참고해서 범위를 재지정해야할가요?
OpenGL만의 그려지는 단위가 따로 있나요?

의문 1)

https://github.com/shonjiho/GameDevPracticePackage/blob/master/Chapter1/Lecture1/TankExample.h#L89-L90

unique_ptr를 한정된 개수로 모아놓은 vector<unique_ptr<MyBullet>> bullets 으로 총알을 모아놓고 재활용하고 있습니다. 이렇게 렌더링하는 부분에서 반복문을 통해서 하나씩 비어있는지 체크하는 방식이 맞는 방식일가요?


C++ OpenGL oop

답변 4

2

홍정모

flyweight와는 다른데, 메모리 풀이 사실 최적화 중에서도 가장 까다로운 축에 속합니다. 게임 엔진 관련 서적에서 종종 다룹니다. 꾸준히 공부해나가시다 보면 확 뚫리는 날이옵니다. 특히 자료구조 알고리즘 공부도 슬슬 준비하시면 좋겠습니다.

2

지호손

답변 감사합니다. 메모리 풀을 고려해서 생각해봐야겠네요.  flyweight 패턴같은 것이군요. 좋은 디자인 패턴이네요.

2

홍정모

보통 코드를 봐드리기는 어려운데 질문이 잘 정리되어 있어서 대답해드리기가 편하네요.

질문 1) 벗어났는지 체크하는 부분은 눈으로 봤을 때 이상하지 않은가가 1차적인 기준이 될거고 총알이 엄청나게 많아서 속도에 부담이 될 정도라면 조금이라도 빨리 없어지게 하는게 이익이겠지요. 정확하게 계산해본다면 물체가 완전히 벗어났을 때 랜더링 되지 않도록 결정해야겠지요. 스케일은 정의하기 나름입니다. 보통은 현실 좌표계와 비슷하게 맞춥니다. 사람 키가 대강 1이나 2 사이에 오게 한다든지.

의문 1) 일단 알고리즘에서 여러가지 더 효율적인 기술들을 배우게 되고 그것들을 응용해서 더 효율적인 메모리 풀(memory pool)을 만들 수 있습니다.

0

지호손

네 감사합니다. :) 슬슬 알고리즘 공부도 시작해보려고 합니다. 

깃허브에서 받은 코드가 왜 강의코드랑 다를까요

0

73

1

Mac vscode 으로 시작하시려는 분들께

0

314

1

마우스 좌우 버튼을 동시에 눌렀을 때의 원의 위치

0

426

1

정답은 어디서볼수있나요?

1

347

2

예제코드

1

491

2

따배C++ 몇 강까지 학습한 후 수강가능 할까요?

1

643

1

15:00 부근 질문 있습니다.

0

420

1

(20.4 참고) 20.4에 해당하는 가이드 페이지가 어디있는지 모르겠습니다.

0

372

1

multimap 질문

0

354

2

도형들의 움직임이 너무 빠릅니다...

0

465

1

vcpkg 설치를 했는데

0

683

2

mutiple bullet 관련 질문 드립니다.

0

481

2

실행 후 화면 꺼짐

0

579

2

예제 파일 실행 시, 에러

1

559

1

아직 못풀어도 괜찮을까요?

0

500

1

코드 열었을 때 오류

1

807

3

코딩공부에 대해서 막히는부분

0

336

1

vcpkg 설치 오류

0

593

2

랜덤값 질문입니다.

0

426

1

vcpkg 다운로드에 문제를 겪고있습니다

1

423

1

if 문에 >= 대신 == 넣으면 작동을 하지 않는 이유가 무엇인가요.

0

283

1

multiple bullet 문제

0

316

1

프로그램 실행 순서 질문

0

273

1

2.2.2 상속으로 깔끔하게 init 메서드 질문

0

228

1