All250 [C++ 17] 템플릿 특수화보다 사용하기 좋은 if constexpr 함수 템플릿을 작성할 때 특정 타입일 경우 다른 행동을 정의하고 싶다. 이럴 때 템플릿 특수화를 사용했다. 그러나 C++ 17부터 if constexpr을 사용해서 타입에 따른 행동을 정의할 수 있다. 아래의 조건식은 타입 T가 MyClass 타입과 동일한지 판별한다. template void Func() { if constexpr (std::is_same_v) { // Do something... } } 위의 if문에서 컴파일 타임에 조건식이 true인지 false인지 판별한다. 따라서 아래와 같이 조건식에 변수는 올 수 없다. 컴파일 타임에 알 수 있는 결과값이여야 한다. template void Func() { int val = 3; if constexpr (val == 3) // compile e.. 2021. 1. 1. [C++] placement new - 내가 원하는 메모리에 객체를 할당하고 싶다면 Placement new 내가 지정한 메모리에 객체를 초기화할 수 있을까? 메모리 풀을 만들다가 난항을 겪어 c++ 포럼에 질문을 남겼다가 새로운 기능을 알게 되었다. 그때 그때 생성할 객체의 타입이 달라서 오브젝트 풀보단, 메모리 풀을 만들고 그 메모리 풀에 객체를 할당하고 싶었다. 즉 다음과 같이 char 타입의 메모리를 생성해 놓고, 앞으로 생성할 객체들이 해당 메모리를 사용하면 좋겠다고 생각했다. 그리고 그런 것은 불가능할 줄 알았는데 가능했다. char* pMemoryPool = new char[1024]; size_t head = 0; A* pA = (A*)(pMemoryPool + head); head += sizeof(A); B* pB = (B*)(pMemoryPool + head); he.. 2020. 12. 25. 애니메이션 테스트 일단 지난 번에 이어 플레이어와 적에게 HP를 적용했다. 적은 총알을 3번 맞으면 죽는다. 플레이어와 적 총알과의 충돌처리도 적용해서 플레이어에게 닿은 총알은 사라지는 걸 볼 수 있다. 체력은 깎이나 아직 플레이어의 데스 처리는 하지 않았다. 그리고 캐릭터의 이미지에 애니메이션을 적용해서 자연스럽게 하였다. 운좋게 리소스를 구하기 좋은 사이트를 알게 되어서 아래 캐릭터와 관련된 스킬과 스프라이트 시트를 얻게 되었다. 사이트는 맨 아래 첨부 또한 총알이 적에게 적중할 때 힛 이펙트가 발생되게 하였다. 이렇게 하는 게 맞는지는 모르겠지만 나는 임시로 일단 적과 총알의 충돌처리가 TRUE면 타격 이펙트 객체를 생성하고 DrawScene에서 생성된 타격 이펙트들을 그리도록 했다. 타격 이펙트도 자세히 보면 애니.. 2020. 12. 21. [OpenCV] 이미지 좌우 반전 + 특정 색상 변경 애니메이션 구현을 위해 다음과 같은 스프라이트 이미지를 여러장 구했다. 투명 처리를 위해 배경색을 변경해야 되는데 사진이 여러장이다 보니 하나하나 변경하기가 매우 귀찮았다. 좌우 반전도 마찬가지. opencv 말만 들어봤지 사용은 안해봤었는데 이김에 한번 사용해보기로 했다. 여러개의 이미지를 읽어서 각 이미지에 대해 좌우반전 후에 배경색을 특정색(마젠타)으로 변경하길 원했다. 색 변경의 경우 각 이미지의 픽셀을 하나하나 확인하면서 조건문으로 배경색과 동일한 픽셀은 마젠타로 변경한다. 다행히 모든 사진의 배경색이 동일해서 수월했다. 코드도 간단하고 매우 쉬웠다. 한가지 특이했던 건 픽셀값을 RGB가 아닌 BGR 순서로 저장하는 듯 하다. 700개 정도의 파일을 처리하는데 디버그 모드로 4초 정도 걸린 듯 .. 2020. 12. 21. [C++] list iterators incompatible Error 나같은 경우는 list의 어떤 반복자가 end와 같은지 비교하는 곳에서 에러가 났다. 원인은 엉뚱한 컨테이너의 반복자와 비교를 하고 있었다. 즉 list가 A, B 두 개 있을 때 A의 반복자는 A의 end와 비교해야 하는데 코드를 복붙한 부분이 있었는데 실수로 수정을 안해서 A의 반복자와 B의 반복자끼리 비교한 것이다. 그러니까 서로 다른 대상의 반복자를 비교하고 있는 건 아닌지 확인해보자. (실수일 가능성이 농후) 2020. 12. 18. 적 총알 발사 기능 추가 적이 생성될 때 한번 발사하고, 기존 적들은 일정 Tick마다 총알을 발사하도록 했다. 다음은 HP 및 플레이어 충돌 처리 할 예정.. 2020. 12. 13. 이전 1 ··· 11 12 13 14 15 16 17 ··· 42 다음