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

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

(13개의 수강평)

427명의 수강생
55,000원
지식공유자 · PP TREE
18회 수업· 총 5시간 1분수업
평생 무제한 시청
수료증 발급 강의
수강 난이도 중급
dldngud97 프로필

안녕하세요 교수님 첫 시작부터 빌드에 실패해서 질문드립니다.. dldngud97 1일 전

교수님이 주신 링크로 github에서 자료를 다운받고 비쥬얼스튜디오로 폴더를 열었는데

빌드에 실패했습니다. 디버그를 계속할까요?

라는 메세지가 나오고

예 를 누르니까

GameDevPracticePackage20181206\Chapter1\Lecture1\Debug\Lecture.exe파일을 찾을 수 없다고 하네요 ㅠㅠ

이제 막 시작한 수강생이라 어떻게 해야할지 모르겠습니다..

1-1강 초반에 교수님께서 실행을 시키시고 하얀색 창이 뜨는 부분을 저도 main.cpp를 찾아서 실행을 시킨건데..

1
BenYu 프로필

엑세스 함수(getter/setter)와 performance의 관계에 대하여 BenYu 6일 전

안녕하세요 좋은 강의 감사드리며 질문이 있습니다.

getter/setter를 활용하게 되면 public과는 다르게 접근을 이중으로(?) 하게 된다는 느낌이 듭니다.

1. 이것이 performance를 크게 저하시키는 요소가 되어 member 보호를 위해 필요에 의해서만 사용해야 하는 프로그래밍 습관일지

2. 크게 무리가 되지 않으므로 class를 생성할 시에 구현 가능한 부분에 대해선 모두 캡슐화하는 것이 좋은 습관이 될지 질문드립니다.

감사합니다. 

1
지호손 프로필

이번 강의에서는 SharedPointer를 이용해서 GeometricObject를 저장하셨는데 지호손 16일 전

이번 강의에서는 SharedPointer를 통해 GeometricObject를 사용하셨는데 UniquePointer를 사용하지않으신 이유가 있을가요??

3
지호손 프로필

여러발의 탱크 구현 질문이 있습니다. 지호손 18일 전

교수님 깃을 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 으로 총알을 모아놓고 재활용하고 있습니다. 이렇게 렌더링하는 부분에서 반복문을 통해서 하나씩 비어있는지 체크하는 방식이 맞는 방식일가요?


4
지호손 프로필

초반 세팅 방법 정리.(삽질 공유) 지호손 18일 전

프로젝트 세팅간에 해매시는분들을 위해 기록 남기겠습니다.

우선, 첫번째 github 링크찾는데 꽤 걸렸습니다.
어디에 올라와있는지 몰랏는데 홍정모교수님 블로그에서 
GameDevPracticePackage 라는 키워드를 보고 깃허브에 검색해서 찾았습니다.

r위 remote repository를 clone했습니다.

vcpkg install opengl 를 통해 opengl를 설치했지만 해결되지않았습니다.

하지만 코드를 들여다보면 opengl이라는 패키지가 아니라glew, glfw3 를 설치해야합니다. 아래와 같이요.

vcpkg install glew:x64-windows

vcpkg install glfw3:x64-windows

vcpkg integrate install // visual studio 인클루드에 반영

 그러면 위와 같이 해결됐습니다. 문제 해결과정에 깨달은게 OpenGL은 하나의 표준이더군요. 언어마다 그에 해당하는 패키지이름을 정확히 인지하는게 중요한 것 같습니다.

2
So Hyun An 프로필

실행 순서에 대해 질문 입니다 ! So Hyun An 19일 전

안녕하세요 ! 

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

해당 강의의 연습문제로 내주신 WalkingPerson.h 에 대한 질문과

1-2 기본적인 그리기 - 이동, 회전, 애니메이션

해당 강의의 '태양계 공전,자전 구현' 연습문제 질문입니다.

아래는 제가 푼 태양계 연습문제 답안입니다.

보시기 좀 지저분 하실 것 같아 죄송하지만 ㅠㅠ 노란색 하이라이터는 제가 이해한 실행 순서와 그에 따른 과정을

필기해놓은 것입니다.

그려지고 회전하고 평행이동 하는 그런 함수들이 코드상의 순서와는 다르게 역순으로 실행된다고 하셔서

이렇게 순서를 짜고 풀었습니다. 

1.원점에 달이 먼저 그려지고

2. 달이 평행이동하고  (0.2, 0.0)

3. 달이 원점에 대해  time * 90 도로 회전하고

4. 원점에 지구가 그려지고 (그래서 원점에 있는 지구를 달이 공전하는 모습이 되고)

5.  지구와 달이 함께 평행이동하여 지구는 (0.5, 0.0) 달은 (0.7, 0.0) 좌표를 가지고 

6. 원점에 별이 그려지고

7. 별은 원점에서, 지구는 (0.5, 0.0) 에서 time * 45 도로 회전하고

실행 결과도 알맞게 나와서 이 순서로 실행되는 것이 맞구나하고 이해했었습니다. 

그런데 WalkingPerson.h 코드를 보니 

노란 팔이 몸통 위에 그려지고 초록다리 또한 몸통 위에 그려지는 것을 보아하니

이 순서대로 그림이 그려지는 것 같더라구요.  눈 또한 얼굴 위에 그려진 것을 보니 얼굴보다 나중에 그려지는 것 같습니다.

이건 또 역순이 아닌 그냥 원래 코드 순서대로 그려지니까 혼란이 옵니다.. ! 

태양계 연습문제와 걷는 사람 연습문제에서 제가 잘 못 이해하고 있는 부분들 알려주셨으면 좋겠습니다 ㅠㅠ

또 두 연습문제엣서 올바른 실행 순서는 어떻게 될지 궁금합니다.

1
김은수 프로필

탱크예제에 포탄 발사소리 김은수 26일 전

연습문제 중에 탱크예제에 포탄발사 소리를 넣으려고 하는데

해당 강의에서 배운 내용을 바탕으로 bulletSound()라는 함수를 만들고 

if (isKeyPressedAndReleased(GLFW_KEY_SPACE))

{

for (int i = 0; i < 5; ++i)

{

                        if (bullet[i]==nullptr)

               {

bullet[i] = new MyBullet;

bulletSound();

bullet[i]->center = tank.center;

bullet[i]->center.x += 0.2f;

....

이런식으로 스페이스바 누르면  총알 나가는 구조 안에 bulletSound()를 추가했습니다.

그런데 이렇게하면 bulletSound() 함수 안의

while문(노래끝났으면 break;) 때문에 

효과음이 끝나고나서야 총알이 발사가 됩니다.

bulletSound()함수를 뒤에 위치시켜도 똑같은 결과가 나오구요.

while문을 없애면 소리가 안나오고,

if(!playing) break; 조건을 없애서 

while(true)

{

        system->update();

}

로 하자니 무한반복으로 계속 돌고

어떤 방법을 이용해야 총알과 소리가 같이 나올 수 있을까요

제가 놓치고 있는게 뭔지 알려주시면 감사하겠습니다.

1
김은수 프로필

사운드 loop off와 pause, resume 김은수 28일 전

질문을 다른데에 잘못 올려서 다시 올립니다.

11분 33초 즈음 loop off 상태일때 바로 1을 눌러서 반응이 없다고 하시면서 loop normal로 바꾸시고 0, 1 누르고 일시정지와 재생 확인해주셨습니다.

loop off 상태일때도 0누르면 일시정지, 1누르면 다시 재생이 되는데요, loop off일때 일시정지 안한상태로 1누르셔서 반응이 없었던 건가요?? loop normal일때도 1만 누르면 반응이 없는데 착오가 있던 것인지 이 부분 확인 부탁드립니다.

그리고 만약 그렇다면 loop off와 normal의 차이는 resume 기능이 되고 안되고가 아니라 단순히 사운드가 반복이 되고 안되고의 차이인 건가요?

1
강준수 프로필

애니메이션을 구현해 보고싶어요.. 강준수 29일 전

특정 동작 시쿼스가 전부 그려져 있는 스프라이트를 로드시킨다음, 매 프레임마다 스프라이트의 출력위치를 바꿔가며 애니매이션을 구현해보려고 하는데요.. opengl로 도대체 어떻게 해야하는지 모르겟어요 ㅜㅜ.. glTextureSubImage2D 함수를 사용해서, 텍스쳐에 스프라이트의 일부분만 지정할수 있다고 하는데.. 어떻게 하면 될지 감이 안잡힙니다..

1
샤인 프로필

walkingperson 예제에서 사람을 여러 사람 만들고 움직이는 걸 못하겟습니다 ㅠㅠ 샤인 2달 전

안녕하세요!

walkingperson 예제를 하는데

todo list에서 사람을 클래스화해서 여러 사람을 만드는건 성공 했습니다..

그런데 여러 사람을 만들고 여서 사람의 팔다리를 움직이는 걸 도저히 모르겟습니다....ㅠㅠ

사람을 그릴때 rotate만 따로 빼는건 말이 안되고 그렇다고 rotate를 클래스 안에 넣자니 1프레임 움직이고 안움직입니다 ㅠㅠ

어텋게 접근해야 하는지 감이 안잡힙니다 ㅠㅠ

1
apple4rhk 프로필

실행 문제. apple4rhk 2달 전

opengl 사용법을 보고 다정확하게 깔았는데 이부분만 빨간색으로 표시가 나타납니다.

혹시 몰라 다운받은 파일에 glew,glfw파일이 있는지도 봤는데 파일도 다있는 상태입니다.

파일 소스를 열수 없다는 에러는 왜 뜨는 걸까요? 답변주시면 감사드립니다 

4
정상훈 프로필

연습문제 답? 정상훈 2달 전

https://blog.naver.com/atelierjpro/221413483005 링크에서 해보라고 하시던 문제들

혹시 답같은게 따로 있을까요??

1
SH 프로필

빌드 실패. 오류: 개체 참조가 개체의 인스턴스로 설정되지 않았습니다. SH 5달 전

제가 github에서 gamepackage을  로드(불러와서)해서 파일을 가져온 후에 main.cpp에서 빌드를 처음 시켜봤는데요 

거기서 빌드 실패. 오류: 개체 참조가 개체의 인스턴스로 설정되지 않았습니다.이게 뜨면서 그 강의에서 보이는 것처럼 하얀 창이 뜨지 않네요 제가 opengl떄문인가 싶어서 opengl도 깔아놨는데도 안되요 ㅠㅠㅠㅠㅠ

혹시 opengl이 제대로 깔리지 않은건가요??

1
cyy0067 프로필

탱크 문제 cyy0067 5달 전

안녕하세요. 강의를 듣고있는 학생입니다.

탱크 연습문제를 구현한 곳에서 질문사항이 있습니다.

ESC 버튼을 눌러 프로그램을 종료 시킬 때마다 다음과 같은 오류가 나오고 있습니다.

어떻게 해야할까요? ㅠㅠ 제가 원하는 결과는 잘 나오는 것같은데...

작성한 소스코드는 다음과 같습니다.

// 탱크와 총알 클래스

// update가 구현되어있는 탱크게임 클래스

바쁘신 와중에도 질문을 하게 되어 죄송합니다.

유튜브도 잘 보고있어요 ! :D

4
gimbakwi 프로필

if (vel_rel.getDotProduct(normal) < 0.0f) 이부분이 이해가 안갑니다... gimbakwi 6달 전

저 조건문이 두공이 서로 가까이가고 있을때 조건문이라고 하셨는데

근대 제가 아무리 생각하고 머리를 굴려도 상대조건에다가 방향노말벡터를 곱해야되는지 이해가 안갑니다.

그냥 상대속도가 0보다 크면 서로 가까이 가고 있는거 아닌가요?

공의 움직임에 대한 케이스를 전부다 생각해봐도 왜 저렇게 조건을 하셨는지 도저히 이해가안갑니다....

왜 그런지 좀 알려주실수 있으신가요

1
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스