분류 전체보기(227)
-
bmp 파일 적용
Aseprite 프로그램을 이용해서 bmp 파일을 만들면 투명도 때문인지 win32 에 바로 적용이 불가능해서 png 파일로 저장한 후에 그림판에 png 파일로 업로드하고 다시 bmp 파일로 변환했다.아마 aseprite의 bmp파일에는 투명도값이 적용된듯 하다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 void CPlayer::render(HDC _dc) { int iWidth = (int)m_pTex->Whidth(); int iHeight =(int)m_pTex->Height(); Vec2 vPos = GetPos(); BitBlt(_dc , (int)(vPos.x - (float)(iWidth / 2)) , (int)(vPos.y - (..
2022.12.27 -
PathMgr
1 2 3 4 5 6 7 8 9 10 11 class CPathMgr { SINGLE(CPathMgr); private: wchar_t m_szContentPath[255]; public: void init(); const wchar_t* GetContentPath() { return m_szContentPath; } }; Colored by Color Scripter cs PathMgr는 폴더주소를 관리하는 클래스로 주소를 저장할 수 있는 문자열을 저장하는 인자를 가지고 처음에 init 을 통해서 주소문자열을 받아오는 역할을 한다. 그리고 어디서든지 GetContentPath을 이용하요 폴더주소를 얻을 수 있다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 void CPa..
2022.12.26 -
Object
지금까지 강의에서 배운 내용으로 적을 움직이고 내가 미사일을 쏘는 방법에 대해서 프로그래밍했다. 코딩과정에서 내가 직접 설계를 해보면서 어려운점이 많이 발생했다 처음 설계한 나의 미사일은 Key 상태를 홀드로 해줘서 미사일이 프레임마다 나가는 방식으로 작동해서 TAP 상태로 바꿔서 한개씩 나가도록 설계를 했다. 하지만 사용자의 입력이 빠르면 빠르게 나간다는 방식을 사용하고 싶지 않아서 타임 매니저를 이용해서 코드를 작성했다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 AttackTime += fDT; if (0.25 GetKeyState(KEY::S) == KEY_STATE::HOLD) { CreateM..
2022.12.25 -
KeyManager
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 struct tKeyInfo { // KEY ekey -> 본인의 인덱스가 곧 키이므로 저장할 필요가 없다. KEY_STATE eState; // 키의 상태값 bool bPrevPush; // 이전 프레임에서 눌렸는지 여부 }; class CKeyMgr { SINGLE(CKeyMgr); private: vector m_vecKey; // 벡터와 이넘클래스, 구조체 이용해서 공간 만드는 방법 다시 숙지하자 public: void init(); void update(); public: KEY_STATE GetKeyState(KEY _eKey) { return m_vecKey[(int)_eKey]...
2022.12.24 -
TimeManager
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 #pragma once class CTimeMgr { SINGLE(CTimeMgr); private: LARGE_INTEGER m_IICurCount; LARGE_INTEGER m_IIPrevCount; LARGE_INTEGER m_IIFrequency; double m_dDT; // 프레임 간의 시간 값 double m_dAcc; // 1초 체크를 위한 누적 시간 UINT m_iCallCount; // 함수 호출 횟수 체크 UINT m_iFPS; // 초당 호출횟수 // FPS // 1. 프레임당 시간 (Delta Time) public: void init(); void..
2022.12.23 -
지뢰 찾기 / C++
너무 강의만 듣고 프로그래밍 연습을 위해서 지뢰찾기 게임을 만들었다. 이번에는 define 과 enum 을 사용했었는데 사용하는 이유를 깨달은거 같다. 이런식으로 반환값을재정의 하였다. Class 는 한개로 만들고 클래스 내부에서 여러가지 멤버를 설정했다. 그리고 한칸 내부의 정보를 저장하기 위해서 Square 구조체도 한개 만들었다. Class 내부의 함수 정보들이다 . 다시 봤을때 알아보기 쉽게하기 위해서 함수의 이름을 최대한 직관적으로 제작했다. 그리고 이번에는 빙고때와는 다르게 확장성을 생각해서 클래스를 설계했다 그결과로 쉬움, 중간, 어려움 난이도를 가지고있다. 게임 스타트 함수를 호출하면 순서대로 함수들이 진행 될 수 있도록 설계를 했다. 게임시작 게임을 시작하면 첫번째로 난이도를 선택할 수 ..
2022.12.22