Unreal - 스킬 트리
·
Unreal 프로젝트 다이어리/두번째 프로젝트
구현내용게임중 레벨업으로 얻는 어빌리티 포인트를 사용하여플레이어가 나뉘어진스킬 트리에서 포인트를 투자하고 스킬을 언락하거나영구적으로 스탯을 증가시키는 브랜치로 선택할 수 있는 시스템 -오리와 눈먼숲의 능력나무 Branch-앞의 스킬을 찍으면 뒤의 스킬을 연달아서 찍을수있는 시스템을 구현해보고싶었습니다 프로토타입 구상도총 3가지의 분기점으로 나누어져있으며 1번 2번 3번 트리가 존재합니다해당 노드에는 가중치(코스트)가 존재하며 어빌리티포인트를 코스트로 사용합니다1번을 찍어야 1-1을 찍을수있으며 2-1를 찍어야 2-1-1이 열리는 스킬트리를 구상했습니다 해당 노드의 언락 능력은 이와 같습니다1 : 체력이 100 증가한다1-1 : 체력이 200 증가한다1-1-1 : 체력이 3분간 20% 증가한다2 : 공격력..
백준 - 4375 1 c++ (모듈러연산 방식)
·
C++ 백준
https://www.acmicpc.net/problem/4375해당 문제는 처음에 이렇게 풀었다숫자를 직접 만들고 전부 계산하는방식으로 말이다#include #include using namespace std;int num;int main(){ while (cin >> num) { string s = "1"; while (true) { long long temp = 0; for (char c : s) temp = temp * 10 + (c - '0'); if (temp % num == 0) { cout 그랬더니 오버플로우 + 시간초과가 나왔다 이럴떈 정수론의 "모듈러 연산" 을 사용하면된다모듈러 연산의 공식은 이와 같다 ( a + b ) % n = ( a % n + b ..
백준 - 3986 좋은 단어 c++
·
C++ 백준
https://www.acmicpc.net/problem/3986백준 좋은 단어 문제입니다 필자는 스택을 사용하여 풀었습니다#include #include using namespace std;//--[입력]-- //좋은단어 경우의수//스택을 사용하여 앞과 뒤의 글자가 같은경우 ++int wordSize;string word;int cnt;int main(){ cin >> wordSize; for (int i = 0; i > word; stack stk; for (char c : word) { if (!stk.empty() && stk.top() == c) stk.pop(); else stk.push(c); } if (stk.empty()) cnt++; } cout
백준 - 1940 주몽 C++
·
C++ 백준
https://www.acmicpc.net/problem/1940 백준 1940 문제입니다해당 문제는 2개의 조합으로 n의 합이되는 경우를 찾는 문제입니다순서가 상관이없는 문제이므로 Combination 문제 이며nC2 공식이 적용되는 문제입니다#include using namespace std;//2개 재료 합 M//재료의 "갯수"//필요한 M "수치"//고유번호 //2개로 만듬//핵심----// -> 순서 상관x -> Combination nC2 (조합)// -> 순서 상관o -> Permutation nP2 (순열)//조합종류의 경우가 3가지 조합까지는 for문으로 구현이 좋음//--nC2의 경우-- int matterSize, needCount;int matterArr[15001];int cnt;..
Unreal - 스탯창
·
Unreal 프로젝트 다이어리/두번째 프로젝트
구현내용게임중 레벨 혹은 재화로 얻는 포인트로 플레이에 영향을 미치는최대체력, 공격력, 공격속도, 크리티컬확률을 변경할수있는 스탯창 구현이번에는 스탯창을 구현할때 위젯 스위처를 사용하였습니다위젯스위처의 사용방법은 이와같습니다 먼저 위젯스위처를 위젯에 배치한뒤 바인드해줍니다UPROPERTY(meta = (BindWidget))class UWidgetSwitcher* WidgetSwitcher_Main; SetActiveWidget 함수로 화면을 전환할수 있습니다WidgetSwitcher_Main->SetActiveWidget(바인드된 원하는 화면); 위젯에서 호버 이벤트로 각각의 모든 버튼함수를 추가하지않고 설계하였습니다UPROPERTY()TMap buttonHilightMap; 호버중일떄 호버가 끝났을때..
Unreal - 세이브 게임
·
Unreal 프로젝트 다이어리/두번째 프로젝트
구현내용게임중 진행되는 세이브되어야하는 데이터들의 값 저장 구현목적언리얼에서는 게임을 실행할 때마다 이전 인스턴스가 모두 초기화되기 때문에, 별도의 조치를 취하지 않으면 게임 데이터가 저장되지 않습니다 인벤토리, 스탯 등등 여러가지를 구현하다보니 값의 저장이 필요하게 되어 구현하였습니다 사용클래스USaveFile실제 저장되는 데이터를 담는 컨테이너 (USaveGame)UProjectGameInstance게임이 실행되는동안 유지되는 전역 데이터 저장기능 인스턴스(GameInstance)SaveManager세이브 / 로드 로직을 관리하는 매니저ProjectGameInstance가 소유하며 저장 / 로그 함수 구현 구현 SaveGame 클래스를 추가해줍니다 저장해야하는값들을 저장합니다#pragma once#i..
Unreal - 경험치, 레벨업 구현하기
·
Unreal 프로젝트 다이어리/두번째 프로젝트
구현내용플레이어의 경험치 와 레벨업 시스템을 구현하였습니다 사용한 클래스StatComponent플레이어의 스탯관련부분을 담당하는 커스텀 컴포넌트 구현C++구현필요한 .h 선언UPROPERTY()float currentExp = 0.f;UPROPERTY()float expNextLevel = 100.f;UPROPERTY(EditAnywhere, Category="Level")int32 maxLevel = 30;UFUNCTION()void LevelUp();UFUNCTION()void CalcExpNextLev();UFUNCTION()void AddExp(float amount);UFUNCTION()void MaxLevel(); 경험치가 소수로 나오면 이상하니 내림하여 정수로 만들고 레벨이 올라갈수록 (1..
Unreal - 데미지 오버레이
·
Unreal 프로젝트 다이어리/두번째 프로젝트
구현내용플레이어의 HP가 일정 이하로 떨어지면, 화면에 붉은색이 번쩍이는데미지 오버레이 효과를 구현하였습니다 사용한 클래스HpStateHP 퍼센트 구간에 따른 단계 를 정의한 Enum 클래스MainWidget전달받은 HpState 단계에 따라 화면 데미지 오버레이 연출StatComponent현재 HP 변화를 기반으로 HpState를 계산하여 UI에 전달 구현HpState먼저 상태를 다른 시스템에서 공통으로 사용하기 위해 별도의 EnumClass를 추가해주었습니다#pragma once#include "CoreMinimal.h"#include "HpState.generated.h"UENUM(BlueprintType)enum class EHpState : uint8{ normal UMETA(Disp..
Unreal - 인벤토리(5-2) (UI 디테일 추가)
·
Unreal 프로젝트 다이어리/두번째 프로젝트
이전글에서 이어집니다2025.11.28 - [Unreal 프로젝트 다이어리/두번째 프로젝트] - Unreal - 인벤토리(5) ( 아이템 정보 ) Unreal - 인벤토리(5) ( 아이템 정보 )이전 글에서 이어집니다2025.11.26 - [Unreal 프로젝트 다이어리/두번째 프로젝트] - Unreal - 인벤토리(4) ( 정렬, 삭제 ) Unreal - 인벤토리(4) ( 정렬, 삭제 )이전 글에서 이어집니다2025.11.25 - [Unreal 프로젝lucodev.tistory.com 저번에 만들었던 아이템 정보창입니다아무리 기능을 구현하는 프로그래머일지라도 너무 칙칙해서 디테일을 추가해주었습니다이번 글에서는 전 글에서 C++로 로직을 완성해두었으니 디테일적 추가한것만 기록하였습니다 추가한기능UI의 아..
Unreal - 인벤토리(5) ( 아이템 정보 )
·
Unreal 프로젝트 다이어리/두번째 프로젝트
이전 글에서 이어집니다2025.11.26 - [Unreal 프로젝트 다이어리/두번째 프로젝트] - Unreal - 인벤토리(4) ( 정렬, 삭제 ) Unreal - 인벤토리(4) ( 정렬, 삭제 )이전 글에서 이어집니다2025.11.25 - [Unreal 프로젝트 다이어리/두번째 프로젝트] - Unreal - 인벤토리 (드래그 앤 드롭) Unreal - 인벤토리 (드래그 앤 드롭)이전 글에서 이어집니다2025.11.23 - [Unreal 프로젝lucodev.tistory.com 구현한 내용아이템에 마우스 올리면 해당 아이템의 정보 확인하기 먼저 초기 구상도를 만들어주었습니다 이를 토대로 위젯을 만들어주었습니다 추가한 클래스ToolTipWidget마우스를 올리면 툴팁이 표시되는 위젯 구현위젯에서 텍스트와 ..