전체 글339 [PUSH PUSH] 게임 로직 구현 - AssortRock 17일차 오프라인 수업_220929 로직 변경 사항 Ball을 밀었을 때 그 위치가 Ball 혹은 벽이면 그 위치로 이동하지 못하게 하는 로직 추가 House에 Ball을 넣었을 때 House가 반짝거리게 하는 효과 넣기 (Pen의 도입) 숙제 (플레이어가 제일 마지막에 그려지도록 하기) 이동불가 로직 // Player.cpp if (map->GetPixel(ballPos) == L'▩' || map->GetPixel(ballPos) == L'●') { ballPos = prevBallPos; mPos = prevPos; } 만약 다음 볼이 움직인 위치를 가져와서 그 위치가 벽이거나 Ball일 경우 움직이기 전 위치로 세팅해준다. House에 볼을 넣었을 때 효과 처리 Ball이 들어갔는지 아닌지 여부에 따라 해당 칸에 bool 값으로 표.. 2022. 9. 30. 7. 템플릿 Type Traits 본 글은 코드누리의 Template Programming 강좌를 개인 학습 목적으로 정리한 글 입니다. https://www.ecourse.co.kr/course-status/ Type Traits 컴파일 시간에 타입에 대한 정보, 변형된 타입을 얻을 때 사용함 메타 함수라고도 불림 T가 포인터인지 알아내는 테크닉 #include #include // foo의 T가 포인터인지 알아내려면 구조체를 만듦 template struct xis_pointer { enum { value = false}; }; //부분 특수화 template struct xis_pointer { enum { value = true }; }; template void foo(T v) { // 부분 특수화를 통해 is_pointer 구.. 2022. 9. 30. 6. 템플릿 특수화 본 글은 코드누리의 Template Programming 강좌를 개인 학습 목적으로 정리한 글 입니다. https://www.ecourse.co.kr/course-status/ 템플릿 특수화란? 특정 타입에 대해 이렇게 처리 해주세요~ 하는 것 클래스를 만들어내는 틀을 필요에 맞게 교체하는 것 #include #include /* Primary template */ template class Stack { public: void push(T a) { std::cout 2022. 9. 29. [PUSH PUSH] 게임 로직 구현 - AssortRock 16일차 오프라인 수업_220928 게임 로직 변경 C스타일의 2차원 배열을 std::vector로 변경 기존의 경우 메모리 할당하는 것을 Stage 사이즈에 맞게 하드코딩(8, 8)해서 넣었는데 이런 방식으로 갈 경우, 다른 맵을 넣었을 때 애매해지는 문제가 있음 그래서 메모장 맵 파일 맨 위에 맵의 x , y 크기를 넣어줌으로써 그 좌표로 맵을 할당하고, 그 크기로 반복문을 돌며 맵을 로드함 Stage::Load 로직 변경 Map* Stage::Load() { FILE* fp = nullptr; errno_t error = fopen_s(&fp, "..\\Stages\\Stage02.txt", "rt,ccs=UTF-8"); if (error != 0) { std::wcout AddGameObject(dynamic_cast(player).. 2022. 9. 29. 이전 1 ··· 64 65 66 67 68 69 70 ··· 85 다음