![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoGe87%2FbtqGeaVQTX0%2FClNKn7gdQ8n6tkI8mvr4QK%2Fimg.png)
[C++] <functional>을 이용한 버튼 구현
2020. 8. 2. 23:07
C++/공부
UI 구현 시 이곳저곳에 버튼이 참 많이 들어간다. 이 경우 차라리 하나의 클래스로 뽑아서, 버튼이 클릭되면 지정한 함수를 호출하는 기능을 하게끔 구현하려고 하였다. 함수 포인터를 이용하니 static 선언이 없으면 불가능했으며, static으로 선언된 멤버 함수에서는 멤버 변수 및 다른 멤버 함수에 접근하는 게 불가능하기 때문에 원하는 동작을 원활하게 실행할 수가 없었다. std::function, std::bind 나의 경우 의 std::function, std::bind를 이용하였다. class button { // ... function _callbackFunction; } 생성자나 함수를 이용하여 _callbackFunction을 초기화하면 된다. 이때 인스턴스의 바인딩이 필요함에 주의한다. _..
[WinAPI 일주일 모작] 모모도라 3 - 시연 영상
2020. 7. 18. 23:08
카테고리 없음
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcjUkCJ%2FbtqFA608zIZ%2FUuwWziJNfeCkd5QCkkKFa0%2Fimg.png)
[WinAPI 일주일 모작] 모모도라 3 - 7일차 (完)
2020. 7. 12. 23:59
프로젝트/모모도라3 모작(일주일)
2020/07/12 사운드 추가 마무리 체력 회복 추가 디버깅 bool 변수 수정 영상 만들기 youtu.be/0gD32Kcki6s 길면서도 짧은 일주일 프로젝트가 끝났다... 초반에는 진짜 길게 느껴졌는데, 후반에는 너무 짧아서 이것저것 기능 쳐내느라 바빴다. 기획 & 설계의 소중함을 느꼈다. 프로젝트 하나 완성한 소감은 기능적으로 특별한 게 없어서 조금 아쉬움이 남는다. 스테이지에서 꼬이지만 않았더라면 세이브/로드 기능도 넣지 않았을까 싶다. 😥 그!래!도! 몬스터 파일 입출력 처리 넣은 거랑 직접 만든 카메라가 들어가 있어서 조금 더 뿌듯하긴 하다. 프레임워크는 너무 어려워... 동영상 초반 움직임 부분에 하필이면 렉이 걸려서 버벅거리는 게 너무 아쉽다. 이미 만들어 버려서 어쩔 수 없지만 ㅠㅠ 얼..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcC2NX%2FbtqFAqkVpne%2FtvktEDfr6TmYKWd7FkVll1%2Fimg.png)
[WinAPI 일주일 모작] 모모도라 3 - 6일차
2020. 7. 11. 22:58
프로젝트/모모도라3 모작(일주일)
2020/07/11 보스3 마무리 충돌 시 뒤로 밀리기, 알파 렌더 이펙트 추가 사운드 추가 피곤해!!!!!!!!!! 죽겠다... 오늘은 한 게 많다. 사실 기획할 때는 시간이 남을 줄 알았고, 막상 개발 들어가니까 구조 꼬여 버리는 바람에 시간이 엄청 부족할 줄 알았는데, 그것까지는 아니어서 다행이다. 첫 게임 프로젝트가 마무리되어 가는 중이라 기분 좋은데, 그만큼 엄청 피곤하다... 자고 싶다. 내일은 사운드 추가만 하고, 시연용으로 RECT 충돌이랑 픽셀 충돌 보여 줄 수 있는 모드를 토글키로 만들어서 영상 촬영해 봐야겠다. 남들 게임 얼른 보고 싶다. 두근두근! 😄
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLWUUx%2FbtqFAqEECg8%2FyFXBK24BsqPaUiqKXuIdMk%2Fimg.png)
[WinAPI 일주일 모작] 모모도라 3 - 5일차
2020. 7. 10. 20:23
카테고리 없음
2020/07/10 보스3 몸 상태가 별로 안 좋아서 뭔가 많이 하지는 못했다... 오늘은 진짜 한 게 없다. 😐 보스3 패턴이랑 구조 고민하느라 시간을 제일 많이 쓴 것 같다. 지금 1페이즈 충돌처리까지 끝냈는데, 생각보다 시간이 오래 걸린다든가 어렵지는 않았다. 보스2 불렛 하나 구현했던 것보다 쉬운 것 같다. 내일은 진짜 마무리 이것저것 하고! 영상 뭐 따야 하는지 쭉 정리해 봐야겠다. 두근두근 😙
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcozF12%2FbtqFyQJ3BE0%2FDkbdWNKQfjOWEmhxobq520%2Fimg.png)
[WinAPI 일주일 모작] 모모도라 3 - 4일차
2020. 7. 9. 23:56
프로젝트/모모도라3 모작(일주일)
2020/07/09 스테이지 구조 변경 보스 패턴 추가 (진행 중) 충돌처리 (일반 몬스터는 완료, 보스는 현재 진행 중) 어제는 스테이지 관련해서 너무 막막했고... 코드 수정하다가 멘탈이 고대로 깨져서 포스팅하는 걸 깜빡했다. 😭 스테이지 구조 쪽에서 꼬일 거라고는 생각을 못 했어서 그런가? 뭔가 진행하는 속도가 생각보다 느리면서도 빠른 듯해서 아이러니하다. 지금 상황으로 봐서는 시간이 남을 것 같지는 않지만, 그렇다고 엄청 급하게 눈물 흘리면서 코드 짜지도 않을 것 같다. 아, 충돌 처리를 그냥 에너미 클래스에서 처리해 버리니까 생각보다 쉽게 진행 중이다. 이러다 꼬이면 안 되는데, 꼬이는 일은 없길 바란다... 기도메타... 🙏 할 수 있을지 모르겠지만, 내일은 보스 구현이랑 충돌 처리 완전 끝내..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDApTs%2FbtqFtxEqhHT%2F0Xue9YgQu1cq9TEDPChgGK%2Fimg.png)
[WinAPI 일주일 모작] 모모도라 3 - 2일차
2020. 7. 7. 23:56
프로젝트/모모도라3 모작(일주일)
2020/07/07 일반 몬스터/보스 몬스터 파일 처리 일반 몬스터 공격 기능 구현 충돌 처리 수정 오늘 할 건 다 했는데... 조금 아쉬운 느낌... 일반 몬스터 중 한 종류에는 픽셀 충돌이 필요해서 바로 적용해 봤더니, 프레임이... 반절이나 떨어진다... 😥 특정 조건인 경우에만 픽셀 충돌을 처리하게끔 하면 덜 느려질 것 같은데, 그 특정 조건을 어떻게 처리해야 좋을지는 조금 더 고민해 봐야겠다. (정 안 되면 한 마리만 배치하거나, 차라리 움직임을 수정하는 게 좋을 것 같다... 🤔) 글 작성하다 말고 수정해 봤는데 나름 잘 작동하는 것 같다. 그래도 조금 더 고민해 봐야지...... 내일은 보스 기능 구현하고, 충돌 처리 시작! 💪
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHKDB7%2FbtqFrDxnkph%2FKBAfwIJUsVKgC67TUaAjDk%2Fimg.png)
[WinAPI 일주일 모작] 모모도라 3 - 1일차
2020. 7. 6. 22:31
프로젝트/모모도라3 모작(일주일)
2020/07/06 캐릭터 상태 버그 수정 일반 몬스터 구현 스테이지 생성 및 이동 처리 카메라 수정 캐릭터 원거리 공격 차지 시스템 구현 일반 몬스터 파일 처리 오늘 너무 하기 싫어서 푹 쉬었다... 😎 일단 대충 위치에 맞춰서 몬스터 배치는 완료했다. 자세한 기능 구현 및 충돌 처리보다는 파일 읽어와서 클래스 생성하고 벡터에 담는 처리를 먼저 해야 할 것 같다. 보스까지 파일로 읽어와서 배치하는 것부터 진행하고, 확인한 후에 세부 기능을 구현하는 편이 좋을 듯하다! 순조롭게 되고 있는 듯하지만 언제 어디서 버그가 터질지 모른다. 긴장 또 긴장! 💪💪
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEFCwK%2FbtqFn01tDQM%2FxaYzeraUNw1IHUrIz26wt0%2Fimg.png)
[WinAPI 일주일 모작] 모모도라 3 - 0일차
2020. 7. 5. 14:03
프로젝트/모모도라3 모작(일주일)
https://www.youtube.com/watch?v=1j-odjPa-Zk 맨 처음에는 문라이터를 생각했었는데, 전투만 구현하는 것도 생각보다 어려워 보여서... 조금 더 단순해 보이는 게임을 찾다가 이 모모도라 시리즈를 발견하게 되었다. 구매해서 실제로 플레이해 보니 생각보다 재미있었고, 보스도 패턴은 단순하지만 다양해서 일주일 모작 프로젝트에 적합하다는 생각이 들었다. 진짜 게임 같은 게임은 처음 만들어 보는 거라서 두근대기도 하고, 내가 잘할 수 있을지 걱정도 된다. 구현 범위는 일반 맵 두 가지, 일반 맵과 보스 맵을 잇는 맵, 보스 맵 세 가지 정도이다. (시간이 남으면 일반 맵과 보스를 하나씩 더 추가하고 싶긴 한데, 어떻게 될지는 아직 잘 모르겠다.) 현재 프로토타입으로 진행해 놓은 코드..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcfpPNh%2FbtqE0ZAFyfl%2FOBksEr7dnkq4gYKIPXBdw1%2Fimg.png)
[C++, WinAPI] 너구리 게임
2020. 6. 16. 20:12
프로젝트/게임 로직 구현
플레이어는 좌우로 움직일 수 있고, 사다리 범위 내에서는 상하로 이동할 수 있다. 스페이스 키를 누르면 바라보고 있는 방향으로 점프한다. 몬스터 또는 장애물과 닿았을 때, 그리고 점프하지 못한 경우에 게임 오버 처리하며, 사다리와 몬스터, 장애물, 과일은 랜덤하게 배치된다. 게임 오버 되지 않고 모든 과일을 다 먹으면 게임을 종료한다. youtu.be/hbKMTk90sko
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYok9Q%2FbtqESigE1Cr%2FtwDnDoGVNuKXxkWwNyU9w0%2Fimg.png)
[C++, WinAPI] 클레이 사격
2020. 6. 15. 21:37
프로젝트/게임 로직 구현
화면 양쪽에서 접시가 날라오고, 중앙에 위치한 두 개의 조준점은 해당 접시를 따라서 상하로 이동한다. 플레이어는 타이밍에 맞춰서 키보드의 좌,우 버튼을 누른다. 접시의 패턴은 우측 상단, 우측 하단, 좌측 상단, 좌측 하단으로 이루어져 있으며, 원활한 플레이를 위하여 랜덤으로 호출하되 확률을 지정하여 우측에서의 출현률을 높였다. 사격 실패했을 경우, 일정 시간 동안 사격을 할 수 없게 재장전 기능을 추가하였다. https://youtu.be/5DHTDYhlmbs
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHjjNr%2FbtqEMwrTR59%2FI7UiRtf3MK2BZig1SLTtn1%2Fimg.gif)
[TIL] 2020-06-10
2020. 6. 10. 21:32
TIL(Today I Learned)
각도 개념에 대한 이해가 부족한 것 같아서 자괴감이 드는 오전이었다. 굳이 다른 사람들이랑 비교할 필요는 없는데 자꾸 조바심을 내게 된다. 😐 때문에 복습도 할 겸, 아무런 레퍼런스 없이 혼자서 코딩을 진행해 보았다. youtu.be/-aCNCvexdfQ YouTube www.youtube.com Angle 계산 보기 편안하게끔 대칭이동(?)한 X축에 접근하고, sin의 부호를 바꿔 준다. void playGround::update() { gameNode::update(); if (KEYMANAGER->isStayKeyDown(VK_RIGHT)) _angle -= 0.04f; if (KEYMANAGER->isStayKeyDown(VK_LEFT)) _angle += 0.04f; // ... _destX =..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQoFxQ%2FbtqEIT94h4L%2FAp8zPZzBWS7qOjL6JzyDUk%2Fimg.png)
[C++, WinAPI] 탱크대전(vs 초급 AI)
2020. 6. 9. 20:20
프로젝트/게임 로직 구현
사용자 플레이어의 조작에 따라서 발사할 위치를 확인할 수 있는 포물선을 그리고, 스페이스 바를 누르면 해당 위치로 총알을 발사한다. 컴퓨터 플레이어는 총알이 근접해 오면 피하고, 일정 시간마다 사용자 플레이어의 위치에 맞게끔 총알을 발사한다. 컴퓨터 플레이어는 일정 체력 이하가 되었을 때 사용자 플레이어의 위치를 체크하고, 해당 위치로 향하는 강력한 유도탄을 발사한다. youtu.be/4yzd0GrD5XU
[WinAPI] 2D 게임 제작 (1) 기본 윈도우 창 - 1
2020. 5. 31. 18:27
WinAPI
각 플랫폼(Windows, Mac, Android 등)마다 맞는 함수들을 제공해 준다. => API(Application Programming Interface) winAPI란 Windows를 이용하기 위한 무수히 많은 함수의 집합이다. windows.h: 윈도우 창에서 무언가를 출력하는 등 윈도우 창을 컨트롤할 수 있는 함수들을 제공 wWinMain: win32의 진입점 함수(메인 함수) int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow) { //... } APIENTRY: __stdcall(함수 호출 규약) HINSTANCE: H -..
[TIL] 2020-05-28
2020. 5. 28. 21:10
TIL(Today I Learned)
1. 마우스 입력받기 POINT _ptMouse; LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam) { PAINTSTRUCT ps; HDChdc;//Device Context switch (iMessage) { case WM_CREATE: { } break; // 마우스를 움직일 때 case WM_MOUSEMOVE: { // 마우스의 좌표를 받아서 POINT에 저장 _ptMouse.x = LOWORD(lParam); _ptMouse.y = HIWORD(lParam); InvalidateRect(hWnd, NULL, true); } break; // 마우스 왼쪽을 누를 때 case WM_LBUTTONDOWN: {..