월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결홍정모의 게임 만들기 연습 문제 패키지
프로그램 실행 순서 질문
2강 과제( 지구 달 자전 공전)중 질문 있습니다. 하기의 코드에서 주석 단 것 처럼 실행 순서가 맞나요? (주석은 실행순서를 의미합니다) #pragma once #include "Game2D.h" namespace jm { class SolarSystem : public Game2D { float time = 0.0f; public: void update() override { beginTransformation(); { rotate(time * 20.0f); // 2 drawFilledStar(Colors::gold, 0.2f, 0.13f); // 1 rotate(time * 45.0f); // 5 translate(0.5f, 0.0f); // 4 drawFilledCircle(Colors::blue, 0.1f); // 3 rotate(time * 90.0f); // 8 translate(0.2f, 0.0f); // 7 drawFilledCircle(Colors::yellow, 0.05f);// 6 } endTransformation(); time += this->getTimeStep(); } }; }
- 미해결홍정모의 게임 만들기 연습 문제 패키지
2.2.2 상속으로 깔끔하게 init 메서드 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 부모 클래이스의 init 과 자식클래스의 init 이 각각 있는데 Triangle 객체에서 init 메서드를 호출해주면 부모 클래스의 init 메서드를 호출하지 않고 Triangle 의 init 메서드를 호출하는 이유가 함수 파라미터가 다르기 때문이 맞나요? override 키워드를 붙이는 경우는 함수 오버라이드를 하는 경우에 사용을 하고 init 메서드들 같은 경우는 함수 오버로딩이라고 판단하는게 맞는지 궁금합니다.
- 미해결홍정모의 게임 만들기 연습 문제 패키지
txt file로부터 키바인딩
안녕하세요, 1) Key binding txt 파일을 아래와 같이 구성하였고, 커맨드맵을 key, value그리고 switch case문으로 매핑하였는데요, 이게 강의에서 말씀해주시려는 의도가 아닌거같아서요. 어떻게 하는게 좋을지 궁금합니다. 2) 아주 만약, 이런 식으로 하는게 맞다면, SPACE 의 경우 string 으로 switch case를 돌릴수없던데 어떻게 해야하는지 궁금합니다. P.S. 네이버 카페가입이 미국 번호만 존재할 시에, 인증번호가 오지않아 가입을 할 수 없었습니다. ㅜ
- 미해결홍정모의 게임 만들기 연습 문제 패키지
게임 실행 중 계속 프레임이 달라지는 문제점
안녕하세요, 코드 작성중에 궁금한 점이 있어 질문드립니다. 예제 코드를 계속 컴파일하다가 이상한 점을 발견했는데요, 게임의 fps가 계속 달라진다는 것입니다. 어쩔때에는 물체가 부드럽게 이동하고, 어쩔때에는 물체가 뚝뚝 끊겨서 이동하는 느낌을 받습니다. 원인이 무엇일까 생각해보다가, Game2D 클래스의 run() 메소드에 관련 코드가 있는 것을 확인했습니다. 위 if문으로 인해서 시스템이 계속 sleep을 하니까 프레임이 끊기는 것처럼 보이더라구요. 또한 dt 값을 계속 확인해보니 값이 불규칙한 것을 확인했습니다. dt 값이 불규칙적이니, sleep도 일정하지 않게 작용하면서 화면 프레임이 계속 달라지는 현상이 생기는 것으로 예상됩니다. (dt 값이 왜 불규칙한지는 모르겠습니다.) 찾아보다가 glfw 메소드 중에 glfwSwapInterval 이라는 메소드가 있어서 사용해봤는데, 인자로 1을 넣어주면 fps가 자동으로 144에 맞춰지더라구요. 또한 일정한 fps 값을 유지시켜주니, 컴파일 할때마다 게임화면의 fps가 달라지는 문제점도 해결된 것 같습니다. 그렇다면 timer class 를 사용하지 않고, 어차피 timer는 프레임 제한을 위한 도구이니 앞서 이야기한 glfwSwapInterval 메소드를 사용해도 괜찮을까요? 위는 timer class를 사용했을 때 FPS를 계산한 것이고, (worst case인 경우 위처럼 프레임이 변합니다.) 위는 glfwSwapInterval 메소드를 사용했을 때 FPS입니다.
- 해결됨홍정모의 게임 만들기 연습 문제 패키지
함수에 전부 빨간줄이 뜹니다.
보시다시피 include는 되는데 함수들을 전혀 인식을 못하고 있습니다. 원인이 무엇일까요?
- 미해결홍정모의 게임 만들기 연습 문제 패키지
예제코드 다운로드
초보라 예제 코드 다운을 어디서 받는지 못찾겠네요 다운로드 위치 또는 링크 부탁드립니다
- 미해결홍정모의 게임 만들기 연습 문제 패키지
엔진음과 포탄음이 동시에 재생되지 않는 문제해결
아래와 같이 SoundEngine_Singleton.h의 void playSound(const std::string & sound_name)함수에 const bool& _simultaneus=false 파라메타를 추가하였고 if (!_simultaneus) if (is_playing) return; 위와 같이 조건을 추가하여 포탄에 대해서만 중첩된 사운드가 재생되게 하였습니다. 포탄을 연속으로 쏘면 의도한 대로 포탄효과음이 연속으로 잘 재생 됩니다.(missile음은 제거하였음) 하지만 탱크를 움직이면서 (엔진음이 나는 상태에서) 포탄이 연속으로 발사되면 소리가 잘 나지 않는 문제가 발생합니다. 엔진음이 재생중인 상태에서 새로이 포탄음이 재생되지 못하게 되는것 같은데... 어떻게 해결방법에 접근해야 할런지 가르침을 부탁드립니다. void playSound(const std::string & sound_name,const bool& _simultaneus=false) { if (sound_map.count(sound_name) <= 0) { std::cout << sound_name << " isn't initialized." << std::endl; exit(-1); } const auto & sound_ptr = sound_map[sound_name]; auto & channel_ptr = channel_map[sound_ptr]; bool is_playing = false; result = channel_ptr->isPlaying(&is_playing); if (!_simultaneus) // play overlabed sound at the same time if (is_playing) return; // don't play if this is already playing result = system->playSound(sound_ptr, 0, false, &channel_ptr); if (result != FMOD_OK) { std::cout << "system->playSound() fail" << std::endl; exit(-1); } }
- 미해결홍정모의 게임 만들기 연습 문제 패키지
채널당 사운드 재생의 효율적 방법을 알고싶습니다.
비전공자로 혼자 게임만들기를 도전하고 있습니다. 강의 중 2:45 즈음에서 한 채널에 사운드 하나만 사용하는것이 비효율적이라 하셨는데요... 한 채널에 여러 사운드를 사용하는 효율적인 방법을 소개해 주실수 있을까요?
- 미해결홍정모의 게임 만들기 연습 문제 패키지
Chapther3 애니메이션 재생 문제
안녕하세요. 수업과 조금 벗어난 주제일 수도 있다고 생각이 들지만 Chapter3의 애니메이션 재생문제에 대해서 질문 드립니다. 깃허브에 올려주신 코드를 그대로 실행하게 되면 애니메이션이 매끄럽게 잘 진행 될 때도 있지만 대부분 빨리 감기가 되거나 뚝뚝 끊기며 애니메이션이 동작하는 경우가 있네요.. 제 컴퓨터가 그렇게 나쁜 사양이 아니라 컴퓨터 사양 문제는 아닌 것 같다는 생각이 드는데 혹시 애니메이션을 매끄럽게 재생하기 위해서는 추가 셋팅을 해야 하는 것인지 궁금합니다.
- 미해결홍정모의 게임 만들기 연습 문제 패키지
이 강의는 언제 시작하면 좋을까요?
이 강의는 따라하며 배우는 C++을 완전히 숙지하고 들어야 따라갈 수 있나요?
- 미해결홍정모의 게임 만들기 연습 문제 패키지
vcpkg 질문입니다
install이 되지않고 could not locate a complete toolset이라는 경고문이 나옵니다 어떻게 해결해야하나요?
- 미해결홍정모의 게임 만들기 연습 문제 패키지
와 너무 신기하고 재밌어요
좋은 강의 감사합니다
- 미해결홍정모의 게임 만들기 연습 문제 패키지
factory pattern의 스마트 포인터화 시켜봤는대 이게 맞는지 모르겠네요
//Example클래스는 변함이 없고 namespace jm { class Example : public Game2D { float time = 0.0f; std::vector<std::shared_ptr <Shape>> my_objs; public: Example() : Game2D() { my_objs.push_back(Shape::makeTriangle(Colors::gold, vec2{ -0.5f,0.2f }, 0.25f)); my_objs.push_back(Shape::makeCircle(Colors::olive, vec2{ -0.1f,0.1f }, 0.2f)); my_objs.push_back(Shape::makeBox(Colors::black, vec2{ 0.0f,0.5f }, 0.1f, 0.3f)); my_objs.push_back(Shape::makeStar(Colors::gold, vec2{ 0.0f,-0.5f }, 0.25f,0.15f)); //my_objs.push_back(new Triangle(Colors::gold, { -0.5f,0.2f }, 0.25f)); //my_objs.push_back(new Circle(Colors::olive, { -0.1f,0.1f }, 0.2f)); //my_objs.push_back(new Box(Colors::black, { 0.0f,0.5f }, 0.1f, 0.3f)); } ~Example() { } void update() override { for (const auto &obj : my_objs) { obj->draw(); } } }; //shape.h의 static 함수들을 shared_ptr화 시켜주는 작업 #pragma once #include "Game2D.h" #include "Shape.h" namespace jm { class Shape { public: vec2 pos; RGB color; void init(const RGB& _color, const vec2& _pos,float _r=0.0f) { this->color = _color; this->pos = _pos; } virtual ~Shape() { } virtual void drawShape() const = 0; //pure virtual classes void draw() { beginTransformation(); { translate(this->pos); drawShape(); } endTransformation(); } static std::shared_ptr<Shape> makeTriangle(const RGB& _color, const vec2& _pos, const float& _size); static std::shared_ptr <Shape> makeCircle(const RGB& _color, const vec2& _pos, const float& _size); static std::shared_ptr<Shape> makeBox(const RGB& _color, const vec2& _pos, const float& _width, const float& _height); static std::shared_ptr<Shape> makeStar(const RGB& _color, const vec2& _pos, const float& _outer_radius, const float& _inner_radius); }; } //이렇게 해준 후 //Shape.cpp #include "Shape.h" #include"Triangle.h" #include"Circle.h" #include"Box.h" #include"Star.h" namespace jm { std::shared_ptr<Shape> Shape::makeTriangle(const RGB& _color, const vec2& _pos, const float& _size) { return std::make_shared<Triangle>(_color, _pos, _size); } std::shared_ptr <Shape> Shape::makeCircle(const RGB& _color, const vec2& _pos, const float& _size) { return std::make_shared<Circle>(_color, _pos, _size); } std::shared_ptr <Shape> Shape::makeBox(const RGB& _color, const vec2& _pos, const float& _width, const float& _height) { return std::make_shared <Box>(_color, _pos, _width, _height); } std::shared_ptr <Shape> Shape::makeStar(const RGB& _color, const vec2& _pos, const float& _outer_radius, const float& _inner_radius) { return std::make_shared <Star>(_color, _pos, _outer_radius, _inner_radius); } } //위에처럼 바꿔주면 돼는거 같은대 //소멸자가 정상적으로 호출되는거 같거든요 cout 찍어보니까 //맞나요?
- 미해결홍정모의 게임 만들기 연습 문제 패키지
콘솔 화면 없애고 창화면만 남기는법
맨 위에 #include <Windows.h> 넣은뒤 int main(void) 를 지우고 int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow) 넣은뒤 솔루션->Lecture 우클릭->속성->링커->시스템->하위시스템 에서 콘솔을 창으로 바꾸면 콘솔이 없어지고 창만 남습니다
- 미해결홍정모의 게임 만들기 연습 문제 패키지
안녕하세요 강의를 듣게되었는데요 예제 Cpp 파일이 어디있을까요?
안녕하세요 따배씨 20.2 를 참조하라 하셨는데 제가 대학생이라 학교에서 배운 c++ 기반으로 뭔가 더 만들고싶어서 수강하게되었는데요.. 따배씨 20.2 에 깃허브에 소스가 있으시다하신거같은데 그럼 추기로 따배씨를 수강해야 깃허브 예제들을 받아볼 수 있는것인가요??
- 미해결홍정모의 게임 만들기 연습 문제 패키지
새로 프로젝트를 만들면 glfw가 자동으로 인클루드 되지 않습니다.
처음 opengl 설치하고 강의 예제 코드를 작성하는 동안엔 #include <GL/glew.h> 등이 무리없이 잘 작성됩니다. 강의를 다 끝내고 간단한 게임을 만들기 위해 새로운 솔루션/프로젝트를 만들어 include 하려고 하는데 #include <GL/glew.h>이나 #include <GLFW/glfw3.h>을 작성하고 컴파일을 시행하면 파일을 열 수 없다고 하네요. 제공해 주신 예제 프로젝트에서 무언가 따로 설정을 해 준 것이 있는지 궁금합니다. 참고로 프로젝트의 [속성]에서 [C/C++]-[추가 포함 디렉터리], [링커]-[일반]-[추가 라이브러리 디렉터리], [링커]-[입력]-[추가 종속성] 들어가서 외부 라이브러리 추가하는 법까지 해 봤는데도 위와 같은 문제가 지속됩니다.
- 미해결홍정모의 게임 만들기 연습 문제 패키지
UTF-16 (LE) byte order mark detected 에러
안녕하세요 교수님, 맥 OS 환경에서 예제 코드를 돌려보려고 했으나 fatal error: UTF-16 (LE) byte order mark detected in '/Users/Desktop/GameDevPracticePackage/Chapter1/Lecture1/main.cpp', but encoding is not supported 라는 에러가 뜹니다. 맥 OS라서 그런걸까요..? 진도를 못나가서 답답합니다ㅠㅠ
- 미해결홍정모의 게임 만들기 연습 문제 패키지
안녕하세요 교수님 첫 시작부터 빌드에 실패해서 질문드립니다..
교수님이 주신 링크로 github에서 자료를 다운받고 비쥬얼스튜디오로 폴더를 열었는데 빌드에 실패했습니다. 디버그를 계속할까요? 라는 메세지가 나오고 예 를 누르니까 GameDevPracticePackage20181206\Chapter1\Lecture1\Debug\Lecture.exe파일을 찾을 수 없다고 하네요 ㅠㅠ 이제 막 시작한 수강생이라 어떻게 해야할지 모르겠습니다.. 1-1강 초반에 교수님께서 실행을 시키시고 하얀색 창이 뜨는 부분을 저도 main.cpp를 찾아서 실행을 시킨건데..
- 홍정모의 게임 만들기 연습 문제 패키지
엑세스 함수(getter/setter)와 performance의 관계에 대하여
삭제된 글입니다
- 미해결홍정모의 게임 만들기 연습 문제 패키지
이번 강의에서는 SharedPointer를 이용해서 GeometricObject를 저장하셨는데
이번 강의에서는 SharedPointer를 통해 GeometricObject를 사용하셨는데 UniquePointer를 사용하지않으신 이유가 있을가요??