전체 글 39

[Win32API] In-Game에서 Collider 관리 방법 (고난이도) _미작성_

https://soonang2.tistory.com/28 [Win32API] GetAsyncKeyState() 와 키 입력 받기 (1) 이번에는 가상 키 값과 키보드 입력을 받는 방법에 대해서 알아보겠습니다. _getch() 함수는 가장 마지막에 입력한 값만 받을 수 있으므로, 대각선 이동을 구현할 수 없습니다. switch(wParam) / case WM_ soonang2.tistory.com ※ 이전 포스팅과 이어지는 내용이므로, 먼저 읽고 오시는 것을 추천드립니다. ※ ※ 이번 포스팅의 Source Code는 아래 git 링크에서 볼 수 있습니다. ※ https://github.com/nr97819/Win32_ASTR_Lecture/tree/Lecture-13 GitHub - nr97819/Win3..

카테고리 없음 2022.04.22

[Win32API] 임시

※ 이번 포스팅의 Source Code는 아래 git 링크에서 볼 수 있습니다. ※ https://github.com/nr97819/Win32_ASTR_Lecture/tree/Lecture-13 GitHub - nr97819/Win32_ASTR_Lecture: Win32_ASTR_Lec Win32_ASTR_Lec. Contribute to nr97819/Win32_ASTR_Lecture development by creating an account on GitHub. github.com define.h // Player, Missile, Enemy, 등을 그룹으로 나누는 enum enum class GROUP_TYPE { DEFAULT, PLAYER, MISSILE, MONSTER, END = 32 //..

[Win32API] GetAsyncKeyState() 와 키 입력 받기 (3)

https://soonang2.tistory.com/30 [Win32API] GetAsyncKeyState() 와 키 입력 받기 (2) https://soonang2.tistory.com/28 [Win32API] GetAsyncKeyState() 와 키 입력 받기 (1) 이번에는 가상 키 값과 키보드 입력을 받는 방법에 대해서 알아보겠습니다. _getch() 함수는 가장 마지막에 입력한 값만 받.. soonang2.tistory.com ※ 이전 포스팅과 이어지는 내용이므로, 먼저 읽고 오시는 것을 추천드립니다. ※ ※ 이번 포스팅의 Source Code는 아래 git 링크에서 볼 수 있습니다. ※ https://github.com/nr97819/Win32_ASTR_Lecture/tree/Lecture-1..

[C++] 정적(static) 키워드의 개념과 활용

1. 정적(static) 멤버 변수 - class 내에서 선언만 가능, 정의는 불가능 - 전역 scope에서만 정의(초기화) 할 수 있다. * 모든 객체가 공유해야 하므로, 프로그램 전체 영역에서 메모리가 유지되어야 한다. * 선언은 class 영역에서 되어지지만, 정의는 파일 영역(전역)에서 수행된다. * 해당 class의 멤버 함수, 혹은 friend class만 접근 가능하다. @ static 멤버 변수의 초기화는, header 파일이 아닌, cpp 파일에서 해주어야 한다. (include할 때마다, 초기화가 되는 비효율적인 동작 방지) 프로그램 전체 영역에서 메모리가 유지되어야 하므로, cpp 파일에서 별도 초기화를 해줘야 한다. CCore::m_app = nullptr; ※ class 내부에서는..

[Win32API] Bitmap에 대한 정리 (2) - bitColor 수정 및 출력

bitColor를 24비트에서 32비트로 변경해서 출력하는 예제이다. [중요 포인트] bitmap은 stride라는 값을 지켜주어야 하는데, (꼭 bitmap만 그런 것은 아니다.) stackOverFlow 등을 찾아보면 그래픽 메모리가 처리하기 편리한 값으로서 Multiple of Four, 즉, 각 행의 bytes 수가 4의 배수 값이어야 한다는 내용이 있었다. 이번에는 24bits의 bitColor 값을 가진 bitmap 이미지를 32bits로 수정했었기에, 32bits / 4 = 8its로 어차피 잘 나누어떨어져서 stride를 고려할 필요는 없었지만, 추후에 32bits를 24bits로 변경하게 된다면, stride가 4의 배수 값을 지켜줘야 하는 것을 잘 기억해야 할 것 같다. 참고로, 간단하..

Assembly 단의 Low Level 환경 및 빅/리틀 엔디안

1. 환경 설정 SASM 검색 Windows용 다운로드 64비트 체계에 맞게 64비트 선택 Create new Project 클릭 기본적으로 위와 같은 내용이 만들어진다. PRINT_STRING은 어셈블리어는 아니고, SASM에서 제공하는 유틸리티 함수이다. Ctrl+S를 눌러서, ‘HelloWorld’라는 이름으로 저장해주자 좌측은 F9 (Build and Run) 버튼이고, 우측은 F5 (Debug) 버튼이다. F5 버튼으로 실행해보자. Hello World가 잘 출력된 것을 확인 save .exe를 눌러서, 윈도우 실행 파일로 저장 test라는 이름으로 저장하자. 클릭해도 아무런 반응이 없다. (Hello World만 출력하고 바로 종료되기 때문) 이동하고자 하는 파일 디렉토리에서 cmd. 을 입력..

카테고리 없음 2022.04.19

[Win32API] Bitmap에 대한 정리 (1) - Bitmap 구조 및 역할

DibSection( ), DDB(Dependent), DIB(Independent), Bitmap Stride(Multiple of 4), bitCount, 등, 비트맵의 세부 구조를 변경하는 메모리 실습을 하는데에 필요했던 정보들을 모아놓았다. 포스팅을 읽기 전에 참고하면 좋은 자료. https://docs.microsoft.com/ko-kr/windows/win32/learnwin32/windows-coding-conventions Windows 코딩 규칙 - Win32 apps Windows 프로그래밍을 처음 접하는 경우 Windows 프로그램을 처음 볼 때 이 프로그래밍이 방해가 될 수 있습니다. docs.microsoft.com Bitmap에 대한 유용한 자료들을 제공해준 사이트들. https..

2진수 그리고 16진수에 대한 정리

포스팅을 읽기 전에 참고하면 좋은 자료. https://docs.microsoft.com/ko-kr/windows/win32/learnwin32/windows-coding-conventions Windows 코딩 규칙 - Win32 apps Windows 프로그래밍을 처음 접하는 경우 Windows 프로그램을 처음 볼 때 이 프로그래밍이 방해가 될 수 있습니다. docs.microsoft.com [Graph of Decimal - Hexadecimal - Binary] d hex bin d hex bin d hex bin 0 0x00 0000 0000 64 0x40 0100 0000 128 0x80 1000 0000 1 0x01 0000 0001 65 0x41 0100 0001 129 0x81 1000 ..