simeddk / GoThere

2209
0 stars 0 forks source link

#15 주간과제 #28

Open simeddk opened 1 year ago

simeddk commented 1 year ago

[중요!]시작했으면 끝장을 봐야 한다.

Image


제출자

이름 제출했는가?
권정훈 O
김건웅
김주연
남석원 O
서상원
유재우 O
윤대영 O
이규원
이해용
장현덕
최윤혁
skacjstk commented 1 year ago
  1. 가드, 패링 시스템 구현 투사체는 겐지마냥 반사하고, 일반 근접공격은 그 데미지를 그대로 되돌려 주기

구현 결과 선요약: 원하던 모든 기능 구현 깃허브: https://github.com/skacjstk/CinderGuy/tree/GuardSystem 블로그: https://blog.naver.com/skacjstk0818/223042238973

고찰 강한 공격은 못막는다거나, 다른 무기의 대방패(없음) 같은 것만 막을 수 있는 공격을 염두하지 않아 만약 구현하려 한다면 구조를 뜯어교쳐야 한다. 다만 Guard만 가능한 무기, Parry 도 가능한 무기 정도는 구분 가능하게 해놨다.

silberstar commented 1 year ago
  1. 농장 시스템에 사용할 작물 3종 구현

  2. 결과 Image

Image

Image

  1. 고찰

Image

데이터 테이블을 넣었는데 왜 인식을 못하는걸까요...

ooweaJ commented 1 year ago
  1. 게임 승리 조건 생성
  2. 결과
    • 위젯 Image

void ACStoryGameMode::DecreaseRoundCount() { RoundAmount--; if (RoundAmount == 0) { CurrentRound++; if (CurrentRound == ClearRound) GameClear();

    bStarted = true;
}

}



3.고찰
- 아직 OSS를 이용한 세션 생성, 참가를 완료하지 못한게 아쉽다.
Mrhoony commented 1 year ago
  1. 주간목표 : 덱슬롯 UI 디자인 적용

  2. 결과 Image

void UCUserWidget_Deck::NativeConstruct()
{
    Super::NativeConstruct();
    TArray<UWidget*> slots;
    slots = Container->GetAllChildren();

    for (UWidget* slot : slots)
    {
        Slots.Add(Cast<UImage>(slot));
    }

    //CLog::Print("Construct Slots : " + FString::FromInt(Slots.Num()));

    SetIcons();
}

void UCUserWidget_Deck::SetIcons()
{
    CheckNull(OwnerComponent);

    TArray<ACPerk*> perks = OwnerComponent->GetPerks();

    //CLog::Print("perks : " + FString::FromInt(perks.Num()));
    //CLog::Print("Slots : " + FString::FromInt(Slots.Num()));

    Slots[0]->SetBrushFromTexture(perks[0]->Icon);

    for (int32 i = 0; i < perks.Num(); i++)
    {
        if (perks[i]->Icon == nullptr) continue;

        Slots[i]->SetBrushFromTexture(perks[i]->Icon);
    }
}

이랬던 코드를

void UCUserWidget_Deck::NativeConstruct()
{
    Super::NativeConstruct();
    TArray<UWidget*> slots;
    slots = Container->GetAllChildren();

    for (UWidget* slot : slots)
    {
        Slots.Add(Cast<UCUserWidget_DeckSlot>(slot));
    }

    //CLog::Print("Construct Slots : " + FString::FromInt(Slots.Num()));

    SetIcons();
}

void UCUserWidget_Deck::SetIcons()
{
    CheckNull(OwnerComponent);

    TArray<ACPerk*> perks = OwnerComponent->GetPerks();

    //CLog::Print("perks : " + FString::FromInt(perks.Num()));
    //CLog::Print("Slots : " + FString::FromInt(Slots.Num()));

    //Slots[0]->GetIcon()->SetBrushFromTexture(perks[0]->Icon);

    for (int32 i = 0; i < perks.Num(); i++)
    {
        if (perks[i]->Icon == nullptr) continue;

        Slots[i]->SetIcon(perks[i]->Icon);
        //Slots[i]->GetIcon()->SetBrushFromTexture(perks[i]->Icon);
        //Slots[i]->SetIcon(perks[i]->Icon);
    }
}

이렇게 바꿨다.

단순히 UImage 였던 Slot을 CUserWidget_DeckSlot으로 변환하고 Icon을 UI에 출력하는 부분을 기존 SetBrushFromTexture()을 사용하던 것에서 별도로 CUserWidget_DeckSlot::SetIcon()을 만들어서 따로 나눠버렸다. 해당 덱슬롯을 선택했을 때 테두리가 강조(SetSelected())되게 했고 다른 덱으로 전환할 때 기존 덱슬롯은 SetCleared() 가 호출되도록 해서 강조를 풀어줬다.

  1. 고찰 코드 치는거 재밌다. 디자인 하는거 안재밌다.