KLingo Project Documentation 1.0.0
Unreal Engine 5.6 C++ Project Documentation
로딩중...
검색중...
일치하는것 없음
UAnswerItem.cpp
이 파일의 문서화 페이지로 가기
1// Copyright (c) 2025 Doppleddiggong. All rights reserved. Unauthorized copying, modification, or distribution of this file, via any medium is strictly prohibited. Proprietary and confidential.
2
3
4#include "UAnswerItem.h"
5
6#include "ALingoGameState.h"
7#include "FReadData.h"
8#include "UGameDataManager.h"
9#include "UWordItem.h"
10#include "Components/Border.h"
11#include "Components/Image.h"
12#include "Components/WidgetSwitcher.h"
13#include "Components/TextBlock.h"
14
15
16void UAnswerItem::InitInfo( EQuestType QuestType, int32 InOrder,
17 FScenarioTargetData TargetData, FScenarioTargetData CorrectData )
18{
19 const int32 TargetWord1Code = FCString::Atoi(*TargetData.word1.code);
20 const int32 TargetWord2Code = FCString::Atoi(*TargetData.word2.code);
21
22 const int32 CorrectWord1Code = FCString::Atoi(*CorrectData.word1.code);
23 const int32 CorrectWord2Code = FCString::Atoi(*CorrectData.word2.code);
24
25 const bool bIsCorrect =
26 TargetData.word1.code == CorrectData.word1.code &&
27 TargetData.word2.code == CorrectData.word2.code;
28
29 this->InitInfo(QuestType, bIsCorrect, InOrder,
30 TargetWord1Code, TargetWord2Code );
31
32 TargetWord1->SetTextColor( TargetWord1Code == CorrectWord1Code ? FLinearColor::Black : FLinearColor::Red );
33 TargetWord2->SetTextColor( TargetWord2Code == CorrectWord2Code ? FLinearColor::Black : FLinearColor::Red );
34}
35
36void UAnswerItem::InitInfo( EQuestType QuestType, bool bCorrect,
37 int32 InOrder, int32 Word1Code, int32 Word2Code)
38{
39 Txt_Order->SetText(FText::AsNumber(InOrder));
40 if ( bCorrect )
41 {
42 Border_Order->SetBrushColor(FLinearColor::Black);
43 Txt_Order->SetColorAndOpacity(FLinearColor::White);
44 }
45 else
46 {
47 Border_Order->SetBrushColor(FLinearColor::Red);
48 Txt_Order->SetColorAndOpacity(FLinearColor::Black);
49 }
50
51 if( QuestType == EQuestType::Read )
52 {
53 TargetWord1->InitInfo(EWordType::Animal, Word1Code);
54 TargetWord2->InitInfo(EWordType::Color, Word2Code);
55 }
56 else if( QuestType == EQuestType::Listen )
57 {
58 TargetWord1->InitInfo(EWordType::Region, Word1Code);
59 TargetWord2->InitInfo(EWordType::Food, Word2Code);
60 }
61}
EQuestType
FReadData 구조체를 선언합니다.
UGameDataManager 클래스를 선언합니다.
TObjectPtr< class UTextBlock > Txt_Order
Definition UAnswerItem.h:29
TObjectPtr< class UBorder > Border_Order
Definition UAnswerItem.h:26
TObjectPtr< class UWordItem > TargetWord1
Definition UAnswerItem.h:32
TObjectPtr< class UWordItem > TargetWord2
Definition UAnswerItem.h:35
void InitInfo(EQuestType QuestType, int32 InOrder, FScenarioTargetData TargetData, FScenarioTargetData CorrectData)
Scenario 타겟 데이터입니다.
FString code