🔥 딱! 오늘 자정까지 할인! 🔥

한가위 할인이 오늘(17일) 종료 됩니다. 눈여겨 봐왔던 강좌가 있다면 놓치지 마세요~ 🎁

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

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

(10개의 수강평)

279명의 수강생

55,000원

평생
중급
수료증
18개 수업, 총 4시간 56분
위시리스트 추가
SIHEON KIM 프로필

예제 다운로드 받고 바로 실행하는데 빌드 실패 뜨는데 어떻게 해결해야하나요 ? SIHEON KIM 22시간 전

예제 다운로드 받고 바로 실행하는데 빌드 실패 뜨는데 어떻게 해결해야하나요 ?\

2015년 비주얼 스튜디오로 실행하면
>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build tools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 build tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Retarget solution".

이렇게 오류가 뜨네요 ㅠ

2019년 비주얼 스튜디오로 실행해면

1>DrawFunctions.obj : error LNK2019: __imp_glBegin 외부 기호(참조 위치: "void __cdecl jm::drawFilledBox(class jm::RGB const &,float const &,float const &)" (?drawFilledBox@jm@@YAXAEBVRGB@1@AEBM1@Z) 함수)에서 확인하지 못했습니다.

1>DrawFunctions.obj : error LNK2019: __imp_glColor3fv 외부 기호(참조 위치: "void __cdecl jm::drawFilledBox(class jm::RGB const &,float const &,float const &)" (?drawFilledBox@jm@@YAXAEBVRGB@1@AEBM1@Z) 함수)에서 확인하지 못했습니다.

1>DrawFunctions.obj : error LNK2019: __imp_glEnd 외부 기호(참조 위치: "void __cdecl jm::drawFilledBox(class jm::RGB const &,float const &,float const &)" (?drawFilledBox@jm@@YAXAEBVRGB@1@AEBM1@Z) 함수)에서 확인하지 못했습니다.

1>DrawFunctions.obj : error LNK2019: __imp_glLineWidth 외부 기호(참조 위치: "void __cdecl jm::setLineWidth(int const &)" (?setLineWidth@jm@@YAXAEBH@Z) 함수)에서 확인하지 못했습니다.

1>DrawFunctions.obj : error LNK2019: __imp_glPointSize 외부 기호(참조 위치: "void __cdecl jm::drawPoint(class jm::RGB const &,class jm::Vector2<float> const &,float const &)" (?drawPoint@jm@@YAXAEBVRGB@1@AEBV?$Vector2@M@1@AEBM@Z) 함수)에서 확인하지 못했습니다.

1>DrawFunctions.obj : error LNK2019: __imp_glPopMatrix 외부 기호(참조 위치: "void __cdecl jm::endTransformation(void)" (?endTransformation@jm@@YAXXZ) 함수)에서 확인하지 못했습니다.

1>Game2D.obj : error LNK2001: __imp_glPopMatrix 외부 기호를 확인할 수 없습니다.

1>DrawFunctions.obj : error LNK2019: __imp_glPushMatrix 외부 기호(참조 위치: "void __cdecl jm::beginTransformation(void)" (?beginTransformation@jm@@YAXXZ) 함수)에서 확인하지 못했습니다.

1>Game2D.obj : error LNK2001: __imp_glPushMatrix 외부 기호를 확인할 수 없습니다.

1>DrawFunctions.obj : error LNK2019: __imp_glRotatef 외부 기호(참조 위치: "void __cdecl jm::rotate(float const &)" (?rotate@jm@@YAXAEBM@Z) 함수)에서 확인하지 못했습니다.

1>DrawFunctions.obj : error LNK2019: __imp_glScalef 외부 기호(참조 위치: "void __cdecl jm::scale(float const &,float const &)" (?scale@jm@@YAXAEBM0@Z) 함수)에서 확인하지 못했습니다.

1>DrawFunctions.obj : error LNK2019: __imp_glTranslatef 외부 기호(참조 위치: "void __cdecl jm::translate(float const &,float const &)" (?translate@jm@@YAXAEBM0@Z) 함수)에서 확인하지 못했습니다.

1>DrawFunctions.obj : error LNK2019: __imp_glVertex2f 외부 기호(참조 위치: "void __cdecl jm::drawFilledBox(class jm::RGB const &,float const &,float const &)" (?drawFilledBox@jm@@YAXAEBVRGB@1@AEBM1@Z) 함수)에서 확인하지 못했습니다.

1>DrawFunctions.obj : error LNK2019: __imp_glVertex2fv 외부 기호(참조 위치: "void __cdecl jm::drawFilledStar(class jm::RGB const &,float const &,float const &)" (?drawFilledStar@jm@@YAXAEBVRGB@1@AEBM1@Z) 함수)에서 확인하지 못했습니다.

1>Game2D.obj : error LNK2019: __imp_glBlendFunc 외부 기호(참조 위치: "public: class jm::Game2D & __cdecl jm::Game2D::init(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int const &,int const &,bool const &,int const &)" (?init@Game2D@jm@@QEAAAEAV12@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBH1AEB_N1@Z) 함수)에서 확인하지 못했습니다.

1>Game2D.obj : error LNK2019: __imp_glClear 외부 기호(참조 위치: "public: void __cdecl jm::Game2D::run(void)" (?run@Game2D@jm@@QEAAXXZ) 함수)에서 확인하지 못했습니다.

1>Game2D.obj : error LNK2019: __imp_glClearColor 외부 기호(참조 위치: "public: void __cdecl jm::Game2D::run(void)" (?run@Game2D@jm@@QEAAXXZ) 함수)에서 확인하지 못했습니다.

1>Game2D.obj : error LNK2019: __imp_glEnable 외부 기호(참조 위치: "public: class jm::Game2D & __cdecl jm::Game2D::init(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int const &,int const &,bool const &,int const &)" (?init@Game2D@jm@@QEAAAEAV12@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBH1AEB_N1@Z) 함수)에서 확인하지 못했습니다.

1>Game2D.obj : error LNK2019: __imp_glHint 외부 기호(참조 위치: "public: class jm::Game2D & __cdecl jm::Game2D::init(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int const &,int const &,bool const &,int const &)" (?init@Game2D@jm@@QEAAAEAV12@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBH1AEB_N1@Z) 함수)에서 확인하지 못했습니다.

1>Game2D.obj : error LNK2019: __imp_glMatrixMode 외부 기호(참조 위치: "public: void __cdecl jm::Game2D::run(void)" (?run@Game2D@jm@@QEAAXXZ) 함수)에서 확인하지 못했습니다.

1>Game2D.obj : error LNK2019: __imp_glOrtho 외부 기호(참조 위치: "public: class jm::Game2D & __cdecl jm::Game2D::init(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int const &,int const &,bool const &,int const &)" (?init@Game2D@jm@@QEAAAEAV12@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBH1AEB_N1@Z) 함수)에서 확인하지 못했습니다.

1>Game2D.obj : error LNK2019: __imp_glViewport 외부 기호(참조 위치: "public: class jm::Game2D & __cdecl jm::Game2D::init(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int const &,int const &,bool const &,int const &)" (?init@Game2D@jm@@QEAAAEAV12@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBH1AEB_N1@Z) 함수)에서 확인하지 못했습니다.

1>C:\Users\김시헌\Desktop\GameDevPracticePackage20181206 (1)\Chapter1\Lecture1\x64\Debug\Lecture1.exe : fatal error LNK1120: 20개의 확인할 수 없는 외부 참조입니다.

이렇게 뜨는데 아직 시작도 안했는데 이렇게 되서 골치가 아프네요 ㅠ

1
gimbakwi 프로필

총알이 여러발 나가도록 하려고 하는데 잘안됩니다... gimbakwi 12일 전

void update() override

{

// move tank

if (isKeyPressed(GLFW_KEY_LEFT))tank.center.x -= 0.5f * getTimeStep();

if (isKeyPressed(GLFW_KEY_RIGHT))tank.center.x += 0.5f * getTimeStep();

if (isKeyPressed(GLFW_KEY_UP))tank.center.y += 0.5f * getTimeStep();

if (isKeyPressed(GLFW_KEY_DOWN))tank.center.y -= 0.5f * getTimeStep();

 

// shoot a cannon ball

if (isKeyPressedAndReleased(GLFW_KEY_SPACE))

{

bullet = new MyBullet;

bullet->center = tank.center;

bullet->center.x += 0.2f;

bullet->center.y += 0.1f;

bullet->velocity = vec2(0.5f, 0.0f);

if (bullet1 == nullptr)bullet1 = bullet;

bullet = bullet->prev;

}

 

if (bullet1 != nullptr && (bullet1->velocity - bullet1->center) > 5)

{

bullet1 = bullet1->prev;

}

bullet_update = bullet1;

while (bullet_update != nullptr)

{

bullet_update->update(getTimeStep());

bullet_update->draw();

bullet_update = bullet_update->prev;

 

}

// rendering

tank.draw();

/*if (bullet1!= nullptr)

{

bullet1->draw();

}*/

}

};

우선  vec2에 대해서 오버로딩 시켜서 벡터 거리 값을 구해서 상수와 크기비교시킬수있도록 해놨습니다.

그래서 그 거리값을 기준으로 총알이 딜리트 시키도록 하려고 했습니다.

그후 리스트 형식을 이용하려고 총알 클래스에 총알 포인트 변수를 넣었고 이를 이용해서 스페이스바를 누르면 총알의 포인트는 총알이전 주소값 현재는 아무 주소값이 없으니깐 nullptr값으로 이동하게되고 이후 다시 스페이스바를 누르면 bullet->prev에 새로운 bullet 클래스를 만들고 여기에 다시 값을 주고 되고 반복하게 하고

제일처음 bullet값을 다른 bullet 클래스 변수 bullet1에 넣어서 이 변수가 조건이 만족되어 delete가 되면 이전변수로 넘어가게 되고

업데이트는 와일문으로 bullet1값에 있는 이전 변수 클래스들을 다 반복문 돌려서 업데이트 시키면서 draw까지 시키려고 했구요

근대 이렇게 생각해서 구현해보니깐 총알이 하나밖에 안나가고 그 총알 하나가 사라져야지 다른 총알이 나오게 됩니다.

뭐가 잘못된지 잘모르겠어서 그런데 좀 어디가 문제인지 알려주실수 있으신가요

너무 어렵네요....

 

 

1
gimbakwi 프로필

13분 30초쯤에 메모리누수가 생긴다는게 잘이해가 안가네요 gimbakwi 13일 전

포탄을 쏘고 움직이고 포탄을 쏘면 메모리 릭이 생기신다고 하셨는데

왜 메모리릭이 생기는지 잘이해가 안갑니다.

15분에서 힌트 주신다면서 총알이 있는 상태에서 또 스페이스를 누르면 원래 나가던 총알이 딜리트가 안된상태에서 뉴 불릿으로 새롭게 만들어지면서 메모리릭이 생기게 된다 이 이유 때문인건가요? 아니면 다른 문제 인건가요?

 

그리고 혹시 이런 부분에서 메모리 릭이 실시간으로 나고있는지 아닌지 확인 하는 방법이

따배c++에서 비쥬얼 스튜디오로 프로파일링 하기 이부분을 참고하면 되는건가요?

 

1
김완기 프로필

예제 다운로드 방법을 모르겠습니다. 김완기 1달 전

예제는 어떻게 다운 받나요??

2
JH Han 프로필

따베C++강의가 없는 사람을 위해서 OpenGL 설치법에 대해서 알려주실수 있을까요? JH Han 2달 전

vcpkg 사용법은 다음 링크를 참고했습니다. https://upglay.tistory.com/12

cmd에서 vcpkg를 콘솔명령어로 실행한 캡쳐본입니다.

잘 안되기에 직접 구글링을 통해서 적용을 해보려고 해도 OpenGL 홈페이지의 파일 배포 내용이 예전과 달라진부분이 많아서 라이브러리 적용에 어려움이 많습니다 ㅜㅜ..

강의에서 사용한 opengl, glew, glfw3 세 가지 라이브러리의 버전도 알려주시면 감사합니다.

 

 

+) 비주얼 스튜디오 언어팩 업데이트로 해결되었습니다.

 

1
기모찌 프로필

명령 패턴 클래스에 대한 질문 기모찌 2달 전

안녕하세요. 명령 패턴으로 포탄 예제 구현예제에 관해 질문드립니다.

포탄 발사 명령을 구현하기 위해 Actor 클래스에 순수 가상 fire 함수를 생성하고 MyTank 클래스에서 fire 함수를 오버라이딩해서 구현했습니다.

만약 탱크, 비행기, 로봇 등 다양한 클래스를 구현해야하고, 각각 고유한 기능 구현해야한다면, Actor를 상속 받는 모든 클래스가 불필요한 기능을 모두 구현해야하는데 이런 문제를 해결하는 방법이 있을까요?? (자식 클래스에만 정의하면 base reference or pointer를 통해 호출할수 없는 문제가 있습니다.)

 

바쁘실텐데 죄송하네요...

class Actor
{
public:
	virtual void moveUp(float dt) = 0;
	virtual void moveDown(float dt) = 0;
	virtual void moveLeft(float dt) = 0;
	virtual void moveRight(float dt) = 0;
	virtual void fire() = 0;   // for tank
	virtual void fly() = 0;   // for aircraft
	virtual void transform() = 0;   // for robot
};

class MyTank : public Actor
{
public:
	void moveUp(float dt) override {}
	void moveDown(float dt) override {}
	void moveLeft(float dt) override {}
	void moveRight(float dt) override {}
	void fire() override {}
	void fly() override {}
	void transform() override {}
};

class Aircraft: public Actor
{
public:
	void moveUp(float dt) override {}
	void moveDown(float dt) override {}
	void moveLeft(float dt) override {}
	void moveRight(float dt) override {}
	void fire() override {}
	void fly() override {}
	void transform() override {}
};

class Robot: public Actor
{
public:
	void moveUp(float dt) override {}
	void moveDown(float dt) override {}
	void moveLeft(float dt) override {}
	void moveRight(float dt) override {}
	void fire() override {}
	void fly() override {}
	void transform() override {}
};

2
기모찌 프로필

탱크 예제 숙제 질문 기모찌 2달 전

안녕하세요. 탱크 예제에 대해 질문드립니다.

총알이 화면 밖으로 사라질 때, 삭제 조건으로 총알 중심 위치를 기준으로 삭제했습니다.

하지만, 화면의 경계를 알기 위해 직접 윈도우에 그려가면서 윈도우의 경계위치를 알아내었는데 혹시 현재 화면의 경계 값을 알 수 있는 함수가 있을까요?

2
세계시민83 프로필

[숙제 답] 세계시민83 2달 전

숙제에 대한 답안이 없을까요?

의도는 알겠으나 저같은 비전공자 직장인은 이게 맞는지 안 맞는지 여부는

알아야 할 것 같아요. (물어볼 곳도 없고 ㅠㅠ)

예제에 대한 답안 코드도 추가로 올려주시면 안될까요?

3
김준성 프로필

교수님 질문 드립니다. 김준성 5달 전

안녕하십니까? 교수님 따배시 C++ 완강하고 게임문제 패키지 열심히 듣고있는 평범한 직장인 입니다.(유튜브도 정말 재밌게 보고있습니다.) 몇일째 해결되지 않는 문제가 있어서 문의드립니다.

지금것 문제가 없다가 금번 FMOD 예제 파일을 실행 할 때 C 라이브러리 함수들이 호환이 안되더라구요 ㅠ 지금 visual studio 에서 C++로 공부중인데 이상하게 해당 FMOD 예제 파일에서만 호환이 안됩니다.. 예를들면 conio.h, printf 와 같은 함수 및 헤더파일에 빨간 밑줄이 가며 Identify 하지 못한다고 나옵니다... ㅠ 혹시나 해서 새로 파일을 만들면 문제가 없는데 예제파일에서만 그런 문제가 발생하며 새로 다운도 받아보고 구글링으로 문제해결하려 노력해봤지만 방법이 보이지 않아 문의드립니다. 혹시 해결 방법이 있을까요?

1
박주홍 프로필

교수님 LNK2001오류 질문드립니다. 박주홍 6달 전

안녕하십니까 교수님 LNK2001오류 질문드립니다. cmd에서 vcpkg로 glew등등을 받고 vcpkg integrate install로 통합까지 완료했습니다. 하지만 Solution Explorer에서 프로젝트 이름을 우클릭후 properties를 들어가 additional include directory와 additional library directory에 vcpkg가 자동으로 포함해준다(?) 경로를 인식해준다(?)라는 문구는 커녕 아무것도 써있지 않았습니다. 그래서 혹시 이것때문에 링크과정에서 함수를 못찾는게 아닐까싶어 edit로 vcpkg에서 받은 것들의 .lib이가 있는 폴더들을 직접 선택해줘서 적용후 다시 빌드해보니 똑같은 오류가 발생합니다.. 교수님 유튜브를 보고 차근차근해봤지만 제 자신이 부족한 것같습니다.. 몇일 동안 이문제로 강좌를 진행해서 들을 수 없다는 것이 너무 답답합니다. 교수님 답변 꼭 부탁드리겠습니다.. 감사합니다!

2
세계시민83 프로필

[only 콘솔창] 콘솔창만 나타나고 윈도우 창 뜨지 않는 현상 세계시민83 6달 전

빌드를 성공해서 디버그를 했더니 콘솔창만 나타나고
윈도우 창이 나타나지 않습니다. ㅠㅠ

[빌드 시 출력창]
1>코드를 생성하고 있습니다.
1>85 of 283 functions (30.0%) were compiled, the rest were copied from previous compilation.
1> 0 functions were new in current compilation
1> 10 functions had inline decision re-evaluated but remain unchanged
1>코드를 생성했습니다.
1>Lecture1.vcxproj -> D:.프로그래밍4-1. OpenGL2017_HONGLecture1Chapter1x64ReleaseLecture1.exe
========== 빌드: 성공 1, 실패 0, 최신 0, 생략 0 ==========

단계별로 안되니깐 슬프네요 ㅠㅠ
피드백 부탁드립니다.

1
세계시민83 프로필

[라이브러리 경로 인식] 빌드 에러 세계시민83 6달 전

저는 dll, 헤더파일 등을 경로로 잡고 했는데

첫번째 삼각형 예제는 잘 되었는데요.

include "stdafx.h"

include "./GL/glew.h"

include "./GL/freeglut.h"

pragma comment(lib, "glew32.lib")

pragma comment(lib, "freeglut.lib")

예제파일로 받고 경로를 잡았는데

엄청나게 에러가 많이 발생됩니다.

1>DrawFunctions.obj : error LNK2019: __imp_glBegin 외부 기호(참조 위치: "void __cdecl jm::drawFilledBox(class jm::RGB const &,float const &,float const &)" (?drawFilledBox@jm@@YAXAEBVRGB@1@AEBM1@Z) 함수)에서 확인하지 못했습니다.

.

.

.

1>D:.프로그래밍4-1. OpenGL2017_HONGGameDevPracticePackage20181206Chapter1Lecture1x64DebugLecture1.exe : fatal error LNK1120: 37개의 확인할 수 없는 외부 참조입니다.

이거 꼭 vspkg로만 해결이 가능한가요? ㅠㅠ

전공이 아니라서 궁금해서 글 남깁니다.

1
LEE KEON 프로필

게임 실행속도 관련 질문입니다 ^^ LEE KEON 7달 전

선생님 안녕하세요~ 우선 게임만들기 패키지 전부 재미있게 수강하였고,

과제도 전부 수행하였습니다 ^^ 많이 배운 것 같습니다. 좋은 강의 감사합니다. ^^

한가지 해결하지 못한 문제가 있는데, 게임 실행시에 규칙적으로 중간중간 속도가 느려지는

현상이 발생합니다. 코드의 문제인지 여러가지를 시도해봤는데,, 이러한 문제는 "Game2D("This is my digital canvas!", 1024, 768, false, 2)에서 "true"로 콘솔을 전체하면으로 바꾸고 ,

dt값을 좀 빠르게 하여 실행하면 중간중간 느려지는 현상이 사라지더군요..(아니면 전체 속도가 빨라져서 느려지는 현상을 제가 느끼지 못한건지도...)

보통 이렇게 속도가 일정하지 않는 현상은 왜 발생하고, 어떤 레퍼런스를 참고하여 문제를

해결 할 수 있을까요?? 궁금합니다!!

2
신윤식 프로필

제가 아직 초보라 이 부분을 어떻게 해결해야 할지 모르겠습니다 신윤식 7달 전

Vcpkg를 이용해서 opengl, glew, glfw3 설치

구글에 vcpkg를 검색해서 다음의 3개를 설치하라는 말씀이신건가요??

2
잡다백수 (잡다백수) 프로필

예제 코드는 어디서 받을 수 있나요? 잡다백수 (잡다백수) 5달 전

궁금합니다. 혹시 질문이 두번 올라갔나요? 질문은 올린 것 같은데 제 프로필에는 질문이 없다고 나와서 다시 질문 올립니다.

2