# win32api

70개의 포스트
post-thumbnail

게임 방법 버그 생기면 R 키 눌러서 화면 정중앙으로 갈 수 있음. 방향키로 스테이지 전환 가능함. > https://github.com/starkshn/JumpKing 여기서 다운 받으면 됨. 후기 나머지 맵 제작하는 부분은 완전 노가다라서 하기 싫어서 안함. 그냥 이것저것 기능 다 넣어보면서 C++공부 겸 win32API공부겸으로 만들어 보았다. 버그도 많고 잘 만들었다고 실제 점프킹 물리와 똑같지는 않다. 그냥 혼자 학습할 대 도움이 많이 되었던거같다. 특히 자료구조 부분이랑 메모리 다루는 부분. double free현상이라던지 이런것을 몸소 체함하니 직접 찾아서 double free현상을 해결하는 부분들같은 경우 얼마나 힘든작업인지 알 수 있었다. (Scene이동할 때

2022년 11월 10일
·
0개의 댓글
·
post-thumbnail

Error 수정

Scene이동 Error 22/11/04 현재 Scene이동시 이렇게 뭔가에 부딪히는? 현상이 발생을 하는데 이렇게 StageScene의 GroundInfo를 다 확인해본 결과 다음씬의 Ground에 충돌한게 아니라 현재씬의 아래쪽에 위치한 이런 녀석들한테 부딪히는것을 확인했다. 그리고 혹시나 Collider가 커서 그런지 Collider의

2022년 11월 3일
·
0개의 댓글
·
post-thumbnail

Ground 제작

Ground 제작 - 1 AddObject 하는 부분에서 중복으로 데이터를 넣는 부분도 수정을 하고 이제 ground와 충돌하거나 애니매이션만 어느정도 손을 보면은 된다. 그중에서도 일단 ground를 어떻게 만들것인지가 중요하다. 방법 마우스로 다 그려서 파일로 저장해서 Animation처럼 불러온다. 코드로 비트맵 파일을 보면서 해당 위치 에다가 Ground를 배치한다. 중간에 문제 발생 ❗ 씬 이동을 UP, DOWN으로 하고나서 종료를 하면은 Scene의 소멸자 부분에서 double fre

2022년 10월 26일
·
0개의 댓글
·
post-thumbnail

GitBash <-> win32API

전체 코드는 제 깃허브에 있습니다. > https://github.com/starkshn/JumpKing 현재 저는 깃 배쉬를 사용하고 있습니다. 프로젝트 저장을 위해 깃허브를 사용할 것인데 제가 깃배쉬를 이용하여 win32API 프로젝트 올리는 방법을 정리하도록 하겠습니다. 1. 깃배쉬 설치 > https://xangmin.tistory.com/102 해당 블로그 글을 참고 바랍니다. 2. 깃헙 로그인 깃허브 로그인 후 레포 하나 만들어줍니다. 전 이미 만들었는데 오른쪽에 Ne

2022년 10월 21일
·
0개의 댓글
·
post-thumbnail

Player Animation구현

전체 코드는 제 깃허브에 있습니다. > https://github.com/starkshn/JumpKing FALL 애니매이션 구현 현재 OFF, FALLEN제외하고 다 구현을 하였다. 기본 이동, 스퀏, 점프까지는 나름 간단하지만 썸내일 애니매이션 처럼 떨어질 조건이 공중에서 잠시 머무르다가 방향이 바뀔 때 FALL애니매이션으로 전환을 해야하는데 ![](https://velog.velcdn.com/images/starkshn/post/f4111ae0-1a16-4b67-8ed7-0823bc4f381e/ima

2022년 10월 20일
·
0개의 댓글
·
post-thumbnail

Scene 전환

전체 코드는 제 깃허브에 있습니다. > https://github.com/starkshn/JumpKing 에러 1 해상도 조절 문제 지금 해상도 조절 해서 실행을 하면은 그대로 적용이 안되는데 원인을 조금 찾자면은 프로젝트 속성문제인거같다. => 모든 코드들을 아직 다 구현을 하지 못해서 발생한 문제이다. Scene 전환 - 1 글의 제일 윗부분에 씬들이 넘어가는 부분을 구현을 해보도록 하겠습니다. 현재 모든 Stage를 SceneManager에 동적으로 할당한 StageScene주소를 관리하도록 구현하고있습니다. ![](https://velog.velcdn.com/images/starkshn/post/2de65b21-17f1-479a-bc8d-91899fd0

2022년 10월 19일
·
0개의 댓글
·
post-thumbnail

프로젝트 구조설계

전체 코드는 제 깃허브에 있습니다. > https://github.com/starkshn/JumpKing 진행 한 것들 Unity 빌드 가능하도록 수정 > https://velog.io/@starkshn/WinAPI-43-Unity-Build 파일이름들 쓰기 편하게 만든 + 클래스이름 프젝 빌드 -> 실행파일 위치 변경 > https://velog.io/@starkshn/WinAPI-22-Path-Manager > 파일 전체 수정 에러 1 연산자 모호하다는 부분이 지금 해결이 안된다. CameraManager에서 이럼... 지금 해당 부분은 DeltaTome_F의 Define파일에서 정의되어있는 함수의 반환값이 잘못되어서 발생한

2022년 10월 18일
·
0개의 댓글
·
post-thumbnail

프로젝트 시작

설명 해당 게임은 C++ win32API로 진행중이며 유튜브의 어O트락 win32API강의를 들었다면 프레임 워크를 이해하는 데에는 도움이 많이 될 것입니다. 혹시 안 들으셨다면은 https://www.youtube.com/playlist?list=PL4SIC1d_ab-ZLg4TvAO5R4nqlJTyJXsPK 다 듣고 오는 것을 추천 드립니다. 현재 프로젝트 블로그 글은 제가 남에게 알려주기 위한 것도 일부분 있지만 제가 햇갈린 부분들과 정리를 한부분이 섞여 있습니다. 전체코드와 리소스 파일은 > https://github.com/starkshn/JumpKing 제 깃허브에 있습니다. FrameWork 현재 프로젝트의 필요한 클래스들과 구조입니다. 08_Factory는 삭제

2022년 10월 17일
·
0개의 댓글
·
post-thumbnail

WinAPI 76 Sound

오늘 배운거 👍👍👍 사운드 카드 개념/이론 memset함수 > https://blockdmask.tistory.com/m/441#:~:text=1.%20memset%20%ED%95%A8%EC%88%98%EB%9E%80%3F&text=memset%20%ED%95%A8%EC%88%98%EB%8A%94%20%EB%A9%94%EB%AA%A8%EB%A6%AC%EC%9D%98,%ED%8A%B9%EC%A0%95%20%EA%B0%92%EC%9C%BC%EB%A1%9C)%20%EC%84%B8%ED%8C%85%ED%95%9C%EB%8B%A4. > 메모리의 내용(값)을 원하는 크기만큼 특정 값으로 셋팅할 수 있는 함수 > memory + setting 채널의 개념 > 보통의 사운드 라이브러리들이 채널방식으로 구현되어 있는데 근데 우리는 사운드 라이브러리를 가져다 쓰지않고 직접 DirectSound를 가져다 쓰는것이다. > 채널 시스템까지는 구현을 안함. 소리를 다룰려

2022년 10월 17일
·
0개의 댓글
·
post-thumbnail

WinAPI 75 Animation (7)

오늘 배운거 👍👍👍 fscanf, fscanf_s 차이점 > 공백 또는 개행 문자를 만나기 전까지 읽는다. > 정확한거는 아닌데 return 값과 인자로 들어가는 수가 다르다. > 공백문자 직전까지 읽기 때문에 getc 사용 getc > 1바이트 문자 하나씩 fscanf_s 동작방식 > char buffer[256] = {}; 여기다가 읽은 데이터를 공백문자와 넣어주면 처음에 "asd" 이렇게 읽고나서 다음 읽을 부분이 "SS"라면은 > buffer에는 "SSd\0"이렇게 남게된다. strcmp > 같으면 0 우리가 Animation(6)의 초반에서 다른 사용자가 봤을 때도 유의미한 데이터를 저장 시키지는 않고 바이트 단위로 바로 데이터들을 저장을 시켰었다. 그래서 저장하는 방식을 문자열 형태로 보여질 수 있도록 '정수 데이터'들도 보여질 수 있게 아스키 코드로 다 저장을 했다. 읽는 경우 ![](https://velog.ve

2022년 10월 16일
·
0개의 댓글
·
post-thumbnail

winAPI 74 Animation (6)

오늘 배운거 👍👍👍 직렬화한 데이터들 Save/Load 흐름 파악 바이트 단위로 저장한 데이터 -> 좀더 사용자가 보기 편하게, 즉, 좀더 유의미한 데이터로 시각적으로 볼 수 있도록 해야하지 않나? fwprintf를 통해 2바이트 문자열 저장 wstring -> string으로 변환 하는 방법 Texture 클래스어떻게 생성 시켰나? => 경로 받아와서 만들었다. 이거 얻어 올려면 ResourceManager에게서 키값으로 얻어와야한다. 그냥 키값만 이렇게 넣어주면은 된다. 그러면 내가

2022년 10월 14일
·
0개의 댓글
·
post-thumbnail

WinAPI 73 Animation (5)

오늘 배운거 👍👍👍 데이터 직렬화 ❗ 문자열 입출력 ❗❗❗ > wstring객체는 vector처럼 동적할당한다. > 문자열은 객체안에 문자열을 넣지 않고 wchar_t타입을 넣는다. 벡터 Load시 반복문 대신 resize > vector의 동적할당 작업을 최소화 오늘 애니매이션 관련 작업을 할 것이다. 먼저 저장부터 구현을 할 것이다. Player클래스에서 이런식으로 다 애니를 불러오는 작업을 코드로써 했는데 이렇게 작업해놓은 데이터를 파일로 저장을 해놓으면 나중에 게임 킬때 로딩만 하면 될 것이다. ![](https://velog.velcdn.com/images/starkshn/post/ae30ddf7-40e2-42e8-be61-62b9fd41bfb0/ima

2022년 10월 14일
·
0개의 댓글
·
post-thumbnail

WinAPI 72 Animation (5)

오늘 배운거 👍👍👍 일단 점프했을 때 일단 점프만 되도록 하도록 수정하였다. Enter/Stay/Exit에 대한 에러를 좀 해결을 하고 현재 Player클래스의 UpdateMove부분에서 움직일 때 초기 속도를 주는 부분이 있었다. 이런식으로 그런데, 공중에서 이동키 연타를 하면은 막 빨라지는데 KEY_TAP이 문제이다. 눌럿다 땔때마다 속도가 더해져서 속도가 빠르게 최대 치 까지 올라간다. 움직일 때 초기속도를 주는 것은 맞지만 같은 방향일 대는 안주도록 예외 처리가 들어가야한다. 그래서 일단

2022년 10월 14일
·
0개의 댓글
·
post-thumbnail

WinAPI RigidBody(8)

오늘 배운거 👍👍👍 축 별로 속도 제한 검사 => 절대값 > 방향을 모르니까 음수 방향이든 양수방향이든 상관없게 하기 위해서 absolute 사용. Normalize 정규화 대신에 (velocity.x / abs(velocity.x)) Enter/Stay/Exit에 문제점이 많다 현재 중력 관련 제한 속도 부터 구현 중력을 받는 오브젝트들은 좌우는 속도제한을 받고 아래로는 속도 제한을 받으면 안될듯. 근데 또 생각해보니까 떨어질때 무한히 가속 붙어서 떨어질 것은 아니다. 최대 '속력'을 제한 해놨는데 이거 실수 즉, 스칼라 값 => 방향성 정보가 없다. 이 말은 Player의 속도가 어느 방향을 가르키던 간에 길이 즉, 곧, 크기를 200으로 제한하겠다

2022년 10월 13일
·
0개의 댓글
·
post-thumbnail

WinAPI 70 RigidBody(7)

오늘 배운거 👍👍👍 최근에 문법이 조금 바뀌어서 함수 안에서의 연산 수식결과 값을 바로 활용하지 말고 지역변수로 담아 놓고 사용하도록 하자. 게임 컨텐츠 마다 작업이 다르게 들어가는 부분이. > OnSetGround 부분에서 점프킹처럼 경직되게 할려고 x, y축 속도 둘다 0으로 맞출 것인지 아니면 y축만 0으로 맞춰서 x축으로는 땅에 착지 했을 때 쭉 미끄러지게 구현할 것인지... 땅을 파고 들었을 때의 예외 처리를 하도록 하겠다. 현재 나의 중점 위치랑 땅의 중점위치를 구해서 나의 y좌표의 절반과 땅의 y좌표 절반을 더한다. 곂치지 않는다면은 땅의 y절반의 크기 + 나의 y절반의 크기가 일치해야하고 내가 땅을 뚫었다면은, 각각의 y 크기 절반보다 크기가 작을 것이다

2022년 10월 13일
·
0개의 댓글
·
post-thumbnail

WinAPI 70 RigidBody (6)

오늘 배운거 👍👍👍 컴포넌트 클래스들 사이의 다형성 ❗ > 컴포넌트들이 많아 질 경우 유용하다. Gravity를 컴포넌트 방식으로 구현을 하는게 더 편하고 유연하다. ❗❗ > 나는 매니져에서 관리를 할려고했는데 여간 복잡한게 아니였다. Scene의 초기화 함수 Init 을 구현하여 오브젝트들이 씬에 설정한 초기값을 update전에 셋팅을 받을 수 있는 시간 구현 ❗❗❗ 오늘 점프 구현할 것이다. 먼저 언제 점프 상태로 진입할지 생각을 한다면은 일단 먼저 땅에 있는지 확인 부터 해야한다. 땅 밟은 유무를 T/F로 할 것인데 이것을 컴포넌트 방식으로 일단 해볼 것이다. 상속으로 해도 상관은 없는데 상속기반으로 구현을 한다면은 골치아파짐 -> 상속을 받는 애들을 모아 주어야한다. 중력을 받는 오브젝트 안받는 오브젝트 이런식으로. Component 다형성 ❗ ![](https://velog.velcdn.com/images/stark

2022년 10월 12일
·
0개의 댓글
·
post-thumbnail

WinAPI RigidBody (5)

오늘 배운거 👍👍👍 switch 지역 변수의 범위 중력 개념 중력을 게임에 어떻게 적용시킬지에 대한 생각 이단 점프 구현시 힘 OR 즉시 속도 prevState = curState하는 부분을 제일 뒤로 빼주도록 하자. 그래야 나의 상태에 따라서 UpdateState, UpdateMove등 Update시리즈에 걸려서 상태를 변경할지 말지를 정할 수 있으니까 현재 UpdateAnimation에서 내가 스위치문 쓰면서 이전에 스위치문의 괄호가 있는것과 없는것의 차이를 알았는데 까먹었다.

2022년 10월 12일
·
0개의 댓글
·
post-thumbnail

WinAPI 67 RigidBody (4)

오늘 배운거 👍👍👍 _dir 에 따라서 어떤 텍스쳐를 사용하지 정함 UpdateState, UpdateAnimation,등등을 구현하여 상태에 따른 애니매이션 재생을 달리 할 것이다. > 유니티와 똑같다. 리소스 자체가 점프를 하면 분간이 안되는 리소스를 사용중이다. 탑뷰 혹은 쿼터뷰 리소르의 경우 점프를 구현을 할 수는 있지만 가로로진행하는 행스크롤 게임과 달리 점프의 개념을 '오프셋'개념으로 접근해야한다. 애니매이션 변경 애니매이션을 변경을 할 때 항상 상태값을 확인하고 애니매이션을 재생을 해야한다. 상태를 전환을 시키고 -> 각 상태에 맞는 애니매이션을 진행을 해야한다. > 키에따른 애니매이션을 관리를 하지말고 '상태'에 따른 애니매이션 관리를 해야한다.

2022년 10월 11일
·
0개의 댓글
·
post-thumbnail

WinAPI 66 RigidBody (3)

오늘 배운거 👍👍👍 힘의 범위 구하기 범위를 구하면서 '비율' 구하는 부분 체크 ❗❗❗ 힘을 그려볼 것이다? 이런식으로 KEY_HOLD 왼쪽 클릭일 경우 힘이 생성되는 부분의 좌표를 얻어올 것이다. 현재 내가 백그라운드 그림을 그리고 있기 때문에 먼저 백그라운드 텍스쳐 그리고 힘주는 원 생성을 해주도록 하자. 클릭 부분에

2022년 10월 10일
·
0개의 댓글
·
post-thumbnail

WinAPI 65 RigidBody (2)

오늘 배운거 👍👍👍 현실의 저항 구현? 저항 구현하기 복잡하다 -> 최대 속력 제한 힘을 적용 시키지 않더라도 이전에 준 힘때문에 _velocity의 크기가 남아 있어서 해당 방향으로 계속 움직이는데 이 부분을 마찰로써 상쇄 시켜 주어야한다. 질량이 엄청 큰 물체가 있다고 가정을 하자. 만약 힘을 안 주고 있을 경우에만 마찰을 적용시킨다면은 엄청 작은 힘으로도 큰 질량을 가지는 물체가 움직일 것이다. 현실에서는 이상한 상황이다. 현실처럼 구현을 할려면은 '최대 정지 마찰력', '운동 마찰력

2022년 10월 10일
·
0개의 댓글
·