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

Spring Force Hooke's Law, 질점이 1개일 때 L0 : 용수철 원래 길이 L : 용수철 나중 길이 K : 용수철의 경직 정도 Fspring : 원래 길이로 돌아가려는 용수철의 힘 ∝ K Hooke's Law, 질점이 2개일 때 Damping Force Damper : 두 물체의 상대속도를 줄여준다. 즉, 두 물체의 속도가 비슷해지도록 만든다 ( 현관문이 쾅 안닫히도록 해주는 그 장치와 같다 ) 스프링이 출렁거리는 정도를 서서히 줄여준다 Spring Force : '길이의 차이' 에 의해 작용 됨 Damping Force : '속도의 차이'에 의해 작용 됨 덤핑 계수 d : 단위 속도 당 물체의 운동을 방해하는 힘 질점이 1개일 때 Damping Force in 1D :질점이 1개일때, ..
RigidCircle.h "공" 객체를 찍어낼 클래스를 포함한 헤더 #pragma once #include "Game2D.h" namespace jm { class RigidCircle { public: vec2 pos; vec2 vel; RGB color = Colors::hotpink; float radius = 0.1f; float mass = 1.0f; public: void draw() { beginTransformation(); { translate(pos); drawFilledCircle(color, radius - 1e-3f); setLineWidth(2.0f); drawWiredCircle(Colors::black, radius); } endTransformation(); } void u..
기본 틀 코드 #include "Game2D.h" #include "Examples/PrimitivesGallery.h" #include "RandomNumberGenerator.h" #include #include namespace jm { class RigidCircle { public: vec2 pos; vec2 vel; const float radius = 0.1f; void draw() // 원 그리기 { beginTransformation(); { translate(pos); drawFilledCircle(Colors::hotpink, radius - 1e-3f); setLineWidth(2.0f); drawWiredCircle(Colors::black, radius); } endTransfo..
어떤 클래스의 객체가 프로그램 전체에서 단 하나만 만들어지도록 하는 것. 오직 한개의 인스턴스만을 갖도록 보장. 그래픽스 엔진이나 사운드 엔진에 종종 사용 된다. 싱글톤을 사용하는 이유 1. 객체 생성 없이 사용될 수 있게 한다. 사운드 엔진은 여러가지 많은 클래스, 객체에서 많이 사용된다. 사운드 기능을 쓰는 객체마다 계속 사운드 엔진 객체를 생성해내고 매개변수로 넘기고 하는 것 너무 낭비. 2. 사운드 엔진 객체를 딱 하나를 여러곳에서 공유 할 수 있게 한다. 사운드 엔진은 객체가 여러개일 필요가 없다. 단 하나면 된다. 사운드 엔진의 기능들만 가져다 쓰면 된다. 사운드 엔진의 map 에 저장되어있는 사운드들 굳이 다 객체로 찍어낼 필요 없이 기존에 만들어진 사운드 엔진 객체를 공유하는게 더 효율적이..
명령과 행위 자체를 객체로 만듬 최대한 추상화 해서 변경 사항이 생기더라도 메인 무한루프를 가지는 메인 함수에서는 변경할 것이 없게끔 해야 좋다. 전체 코드 #pragma once #include "Game2D.h" #include namespace jm { class Actor { public: virtual void moveUp(float dt) = 0; virtual void moveLeft(float dt) = 0; virtual void moveRight(float dt) = 0; virtual void moveDown(float dt) = 0; }; class Command { public: virtual ~Command() {} virtual void execute(Actor& actor, ..
#include "Game2D.h" #include "Examples/PrimitivesGallery.h" #include "RandomNumberGenerator.h" #include #include #include "Triangle.h" #include "Circle.h" #include "Box.h" namespace jm { class Example : public Game2D { public: std::vector my_objs; Example() : Game2D() { my_objs.push_back(std::make_unique(Colors::gold, vec2{ -0.5f, 0.2f }, 0.25f)); my_objs.push_back(std::make_unique(Colors::olive..
std::vector 동적배열 std::vector 배열명; : 생성 배열명.size() : 크기값 배열명.resize(n) : n의 크기로 재설정 배열명.push_basck(value) : 벡터 제일 마지막 위치에 새로운 value 추가 배열명.pop_back(value) : 벡터 마지막 값을 삭제 배열명.clear() : 백터의 모든 값을 삭제 auto 추론 키워드 컴파일이 알아서 타입을 결정해준다. new와 delete 힙메모리 활용 type * 포인터 = new type; type만큼의 힙 공간에 메모리를 할당하고 주소를 반환해준다. 할당된 메모리 공간을 포인터가 가리키고 있다. 스마트포인터 make_shared, shared_ptr, unique_ptr 포인터처럼 동작하는 클래스 템플릿으로 사용..
class 클래스명 : public 상속할클래스명 가상함수 자식클래스에는 있는데 부모클래스에는 없는 함수를 가지고 있는척 하게(컴파일되게) 해주는 기능 함수 virtual 자식클래스에 오버라이드 된 함수가 있다면 그걸 컴파일하게 함 부모클래스에 virtual이 붙은 함수를 자식클래스에서 오버라이드해서 사용하려면 뒤에 붙은 함수까지 다 적어야 하고 오버라이드를 했다는것을 알리기 위해 override를 적는다. 순수가상함수 virtual void 함수명() const = 0; 형식 몸체는 없고 선언만 부모클래스에서 해서 누군가 빌드를 해서 몸체가 없다는 오류코드를 확인하면 순수가상함수를 오버라이드하는 자식클래스에서 몸체를 작성하게 하도록 하는 시스템
Roble
'홍정모의 게임 만들기 연습 문제 패키지' 태그의 글 목록