연습
-
[WinApi] 블랙홀 만들기연습/WinAPI 연습 2022. 12. 1. 15:12
삼각함수를 이용해 블랙홀을 만들었다. 출발 좌표와 도착 좌표만을 갖고 있기에 델타값을 구하고, atan2()를 이용해 라디안 값을 구한 후 각도로 변환해주었다. 생성된 순간 잠시 사이즈를 크게 만들어 반짝이는 것처럼 표현했다. 방향키를 움직일 시 큰 원의 중심부를 지난 오브젝트는 가던 길을 계속 가고, 지나지 못한 오브젝트들은 원을 따라온다. 오브젝트는 구조체로 만들고, vector을 이용해 관리한다. 디버깅용 콘솔창을 통해 vector에 오브젝트의 갯수가 200~500개 사이에서 왔다갔다하는 것을 확인할 수 있었다. 이미지 클리핑과 HBRUSH도 이용해 추가로 만들어보았다.
-
[Win API] 2D 레이싱 게임, 사과나무 쏘아 맞추기연습/WinAPI 연습 2022. 11. 30. 11:31
오늘은 22.11.30까지 만든 프레임워크 기준으로 레이싱게임과 사과나무 쏘아 맞추기를 만들었다. (최신글 : 2022.11.29 - [프로그래밍 공부/Win API] - [Win API] 프레임워크 구축(9) 이미지 루프, 전체화면 ) 버틴 시간에 따라 점수가 증가하도록 만들었다. z는 방어막, x는 차들이 갈라지기, c는 무적모드에 속도와 점수 두 배 스킬을 넣었다. 계기판은 ↑, ↓ 방향키를 누를 때와 c스킬 사용 시 움직이도록 하려 했는데 원한 만큼의 동작은 되지 않았다. 엔터키를 누르면 재실행이 되도록 만들었다. 이미지 변경을 위해 enum class를 사용하고, 구조체, 랜덤, 삼각함수 등 다양한 문법과 프레임워크를 사용해보려고 노력했다. 삼각함수와 중력효과를 모두 주려 했는데, 삼각함수의 활..
-
[Win API] 사각형 밀기, 사각형 영혼 불어넣기연습/WinAPI 연습 2022. 11. 13. 18:52
오늘 배운 내용 [Win API] 프레임워크 구축(1) Win API에서 사용할 프레임워크를 구축하기 위해 미리 컴파일된 헤더(PreCompiled Header,PCH)를 만드는 작업을 했다. "stdafx"라는 이름으로 새 클래스를 생성 후 프로젝트-속성-C/C++ - 미리 컴파일된 헤더 enjoy-coding-together.tistory.com 프레임워크 구축 도중 만든 inline 함수들을 이용해 해당 과제들을 해결했다. 1. 사각형 밀기 특이사항으로는 좌변과 우변이 만났을 때를 체크하는 대신 두 개의 사각형 중심끼리 거리를 체크했다는 점이 있다. 또한 화면 밖으로 두 사각형 모두 나가지 않게 처리하고, 모서리끼리 만났을 시 버그가 일어나지 않도록 했다. 2. 사각형 영혼 불어넣기 맞닿으면 작은 ..
-
[Win API] 애플 로고 그리기, 오망성 그리기, 사각형 움직이기연습/WinAPI 연습 2022. 11. 13. 18:47
오늘 배운 내용 [Win API] pixel 찍기, 원/사각형 그리기 pixel, 원, 사각형은 WinAPI에서 충돌 판정을 위한 매개체로 사용된다. 충돌 판정으로는 ABB, OBB, pixel, 원이 있으며, 사각형 그리기가 ABB와 OBB로 이어진다. 이를 고려하며 각각의 함수에 대해 공부했 enjoy-coding-together.tistory.com 1. 애플 로고 그리기 SetPixel() 함수를 이용하여 그라데이션이 있는 로고를 그렸다. WinAPI는 CPU를 이용하기 때문에 점을 찍는 모습이 보이고, 따라서 최적화가 중요하다. 그러나 곡선을 나타내는 것이 어렵기 때문에 완성을 최우선 목표로 잡았다. 사과 꼭지 부분은 같은 크기의 원 두개를 겹쳐, 4사분면과 2사분면이 닿는 부분만 색을 칠하도록..
-
[WinAPI] 구구단 출력연습/WinAPI 연습 2022. 11. 9. 21:07
오늘 배운 내용 [WinAPI] 문자 출력과 선 그리기 1. 주로 게임에서 사용하는 메시지 루프 while (true) { if (PeekMessage(&message, NULL, 0, 0, PM_REMOVE) { if(message.message == WM_QUIT) break; TranslateMessage(&message); DispatchMessage(&message); } } PM_REMOVE: 정수 1을 16진수로 바 enjoy-coding-together.tistory.com 마우스 좌클릭을 하면 구구단이 한 줄 출력되며, 우클릭을 하면 한 줄 삭제되고 다음 한 번의 출력이 붉은 색으로 나오도록 했다. 선을 쓰는 연습으로 MoveToEx() 함수와 LineTo()함수를 사용하여 이름을 그렸는..