전체 글
-
[UE5] 퍼즐 진행 상황 기록 기능언리얼엔진/노노그램 2023. 11. 8. 17:23
난이도가 높은 퍼즐은 푸는데 시간이 오래걸려서 일단 상황을 기록해두고 나중에 다시 이어서 하는 경우가 있다. 그래서 퍼즐을 푸는중에 나가면 퍼즐의 마지막 상황을 기록하게 했다. 그렇다면 퍼즐이 진행중이라는 것을 사용자에게 표현해줘야 하는데 이 부분은 모바일게임인 No2g의 방식을 따라했다. No2g에서는 진행중인 퍼즐의 마지막 상황을 퍼즐의 썸네일에 보여준다. 그리고 완료한 퍼즐은 아래처럼 보여준다. 완료한 퍼즐의 결과물을 보여주는 것은 성취감을 느끼게 하는데 필수적이라고 생각해서 이것도 따라해보기로 했다. 목표는 정했으니 구현 방식을 정해야한다. 퍼즐을 완료한 상태는 정해진 답이 있으니 결과물이 정해져있지만, 퍼즐이 진행중인 상태에는 상황에 따라서 달라지므로 동적으로 변경할 수 있는 방법을 고민해봐야한..
-
[UE5] 노노그램 플레이 중 피드백에 관해서 - 5언리얼엔진/노노그램 2023. 10. 14. 12:45
마지막으로 한 줄을 힌트에 모두 맞게 채우면 나머지 빈 칸들을 X로 자동으로 막아주는 기능을 추가한다. 이 기능은 설정에 옵션으로 추가해서 플레이어가 원하는 경우 켜거나 끄게 할 수 있도록 구현하기로 정했다. 그래서 이렇게 생긴 설정 화면을 추가했다. 설정에 관해서는 다른 글에서 다루겠다. 해당하는 줄이 모두 힌트에 맞게 채워져있는지를 확인하는 과정은 이전 글에서 이미 설명했다. 그러한 상황이 발생하면 함수를 바로 반환했는데 이번에는 true를 반환하게 해서 함수의 밖에서 그러한 경우가 발생했다는 것을 알려주게 했다. bool UBoardManager::LineMatch(const FLineInfo& LineInfo, const TArray& Blocks, FLineCheck& OutLineCheck) ..
-
[UE5] 노노그램에 Undo, Redo 기능 추가언리얼엔진/노노그램 2023. 10. 11. 17:53
퍼즐을 푸는 중에 실수를 해서 칸을 잘못 채우는 경우가 종종 발생한다.의도치 않게 칸이 채워진 것이라 어떻게 했는지 기억이 나지 않는 경우도 있다.그럴때 Undo 기능이 유용하게 사용된다.그리고 Undo가 있으면 Redo도 빠질 수 없다. Undo 기능은 간단하게 더블 링크드 리스트로 구현했다.링크드 리스트의 각 노드들은 퍼즐이 어떻게 변했는지에 대한 정보를 가지게 된다.어느 칸들이(좌표) 어느 상태에서(From) 어느 상태로(To) 변했는지를 기억한다. 변경된 상태들을 저장하는 구조체를 하나 추가한다.// PlayLog structstruct FPlayLog{ ECellState From; ECellState To; TArray Cells; FPlayLog() { ..
-
[UE5] 노노그램 플레이 중 피드백에 관해서 - 4언리얼엔진/노노그램 2023. 10. 11. 16:19
이전 글 마지막에서 적었던 약간 아쉬운 부분을 보완하겠다. https://mstone8370.tistory.com/9 [UE5] 노노그램 플레이 중 피드백에 관해서 - 3 이전 글에서 힌트 피드백이 어떻게 작동해야하는지를 정했다. https://mstone8370.tistory.com/8 [UE5] 노노그램 플레이 중 피드백에 관해서 - 2 이전 글에서 이어진다. https://mstone8370.tistory.com/7 [UE5] 노노그 mstone8370.tistory.com 다음과 같은 예시가 있다. 힌트는 [ 1, 4, 2 ] 이다. 이런 상황에 아래와 같이 줄을 채웠다고 가정한다. 이런 상황에 블럭은 [[1, [2, 1], 2] 이렇게 되어있다. 상황을 분석해보면 힌트는 3개, 블럭은 4개 존재..
-
[UE5] 노노그램 플레이 중 피드백에 관해서 - 3언리얼엔진/노노그램 2023. 10. 4. 17:50
이전 글에서 힌트 피드백이 어떻게 작동해야하는지를 정했다.https://mstone8370.tistory.com/8 [UE5] 노노그램 플레이 중 피드백에 관해서 - 2이전 글에서 이어진다. https://mstone8370.tistory.com/7 [UE5] 노노그램 플레이 중 피드백에 관해서 - 1 노노그램 게임들을 해보면 퍼즐을 푸는 중에 칸을 어떻게 채웠는지에 대한 다양한 방식의 피드백을mstone8370.tistory.com다음으로는 그 규칙에 맞게 작동하게 로직을 짜야한다. 먼저 칸들을 블럭으로 구분해야한다.그리고 각 블럭이 가져야 할 정보는1. 블럭의 길이 (또는 시작점과 끝점).2. 줄의 어느쪽 끝에 연결되어있는지.3. 줄의 한쪽 끝에 해당하는지.이다. 다시 한번 설명하면,블럭은 ..
-
[UE5] 노노그램 플레이 중 피드백에 관해서 - 2언리얼엔진/노노그램 2023. 9. 27. 20:50
이전 글에서 이어진다.https://mstone8370.tistory.com/7 [UE5] 노노그램 플레이 중 피드백에 관해서 - 1노노그램 게임들을 해보면 퍼즐을 푸는 중에 칸을 어떻게 채웠는지에 대한 다양한 방식의 피드백을 준다. 몇 가지를 정리해보면 1. 피드백이 없음. 퍼즐을 완료했다는것만 알려주고, 그 외의 모mstone8370.tistory.com 아래의 이미지에 있는 10개의 예시를 하나씩 분석한다. 각 예시에 있는 것은 왼쪽부터 힌트, 칸, 블럭 정보다.게임 화면에 나타나는것은 힌트와 칸이고, 블럭 정보는 한 줄의 칸들을 분석해서 블럭으로 구분한 결과다. 블럭 정보에 나타난 숫자는 블럭의 길이이고, 대괄호는 해당하는 블럭이 줄의 어느쪽 끝에 연결되어있는지를 표현한 것이다.대괄호가 두개 붙..
-
[UE5] 노노그램 플레이 중 피드백에 관해서 - 1언리얼엔진/노노그램 2023. 9. 25. 23:35
노노그램 게임들을 해보면 퍼즐을 푸는 중에 칸을 어떻게 채웠는지에 대한 다양한 방식의 피드백을 준다. 몇 가지를 정리해보면 1. 피드백이 없음. 퍼즐을 완료했다는것만 알려주고, 그 외의 모든것을 직접 확인해야한다. 2. 힌트 하나씩 맞게 채웠는지를 알려준다. 칸이 채워진 상황을 분석해서 힌트에 맞게 채우면 해당하는 힌트가 하나씩 지워지면서 제대로 하고있다는 것을 알려준다. 그래서 칸을 무언가로 채울 때마다 피드백이 제공된다. 3. 한 줄의 모든 힌트에 맞게 칸을 채우면 해당하는 줄의 빈 칸을 모두 X로 막아준다. 난이도가 올라갈수록 확실하게 아닌 칸들을 X로 막는 것은 퍼즐을 푸는 중에 반드시 거쳐야하는 과정이다. 동시에 귀찮은 작업일 수도 있는데 이 귀찮은 작업을 자동으로 해주면서 칸을 맞게 채웠다는 ..
-
[UE5] SCompoundWidget에 Brush 추가, 노노그램 입력개선언리얼엔진/노노그램 2023. 8. 31. 21:51
지난번 포스팅에서 이어진다. https://mstone8370.tistory.com/5 [UE5] Slate를 이용해서 UI의 마우스 입력을 원하는대로 받기 사용자 위젯으로 UI를 만들때 마우스 이벤트를 내가 원하는 대로 받고싶을 때가 있다. 예를 들면 마우스 호버 이벤트를 버튼이 아닌 위젯에서도 받아오고 싶다거나, 클릭 이벤트를 마우스 오른 mstone8370.tistory.com 결과 비교 먼저 결과부터 비교해본다. 왼쪽이 이전에 포스팅 했던 결과고, 오른쪽이 현재 상태다. 변경된점은 다음과 같다. 선택된 영역을 표시하는 방식을 결과 미리 보기에서 외곽선과 색 채우기로 변경했다. 현재 호버링 하고있는 칸을 십자 형태로 강조 표시해서 어느 칸을 가리키는지 쉽게 알아볼 수 있게했다. 이전 상태의 마우스 ..