전체 글 283

딕셔너리

이번 포스트에서는 파이썬의 자료구조 중에서 딕셔너리에 대해 알아보겠습니다. 1) 딕셔너리란?딕셔너리는 이전에 알아본 리스트나 튜플과 같이 순서가 있는 자료형입니다.Key와 Value의 순서쌍으로 이뤄진 데이터를 가지고 있는 사전형 자료형입니다.딕셔너리이름 = {키1 : 값1, 키2 : 값2, 키3 : 값3, ... } 이때 Key는 문자열뿐만이 아닌 숫자나 boolean도 가능합니다.Value 역시, 단순한 값외에도 리스트나 튜플 심지어는 다른 딕셔너리도 가능합니다. 2) 딕셔너리 다루기딕셔너리의 Value는 다음과 같이 가져올 수 있습니다.딕셔너리["키"] 딕셔너리의 특정 Key에 대해 Value를 설정하는 것은 다음과 같이 진행합니다.딕셔너리["키"] = 데이터 또한 특정 Key를 통해 데이터를 삭제..

Python 2024.11.25

C#에서 쓰레드를 생성하는 방법

C#에서 멀티쓰레드를 생성하고 이를 사용하는 방법을 알아보겠습니다.C#에서는 대표적으로 3개의 방법이 있는데 각각의 방법과 사용예제를 한번 살펴보겠습니다. 1) ThreadThread 스레드이름 = new Thread(수행함수); 위와 같은 형태로 스레드를 생성하는 방법입니다.스레드를 원하는 만큼 만들수는 있지만,Core가 작업을 할당해야 하는 스레드가 늘어나는 것이므로 부하가 발생할 수 있습니다. 따라서 멀티스레드 프로그래밍에서는 권장하지 않는 방법입니다. 사용예제는 다음과 같습니다. class Program { static void AddedThread(object state) { for(int i = 0; i  main 스레드 외에 Added ..

C# 2024.11.25

GameplayAbilitySystem을 이용한 RPG 프로젝트 - (11) WidgetController의 설계와 HUD 재구성

이번 포스트에서는 본격적인 MVC 패턴을 사용하여 Controller의 역할을 수행하는 WidgetController를 설계하겠습니다. 1) MVC 패턴에서 Controller의 역할을 수행하는 AAuraWidgetControllerController는 Model(=데이터)과 View(=UI)를 왕복하며 움직여야 합니다.따라서 양쪽으로부터 접근이 가능해야 하므로 다음과 같이 코드를 재구성하였습니다.// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "UObject/NoExportTypes.h"#include "AuraWidgetContro..

GameplayAbilitySystem을 이용한 RPG 프로젝트 - (10) Overlay Widget과 HUD

이번에는 기존에 만든 Wiget 블루 프린트를 상속받아 체력과 마나를 나타내는 위젯을 만들고그 위젯을 Overlay Widget에 담고 최종적으로는 HUD를 통해 화면에 연출하겠습니다.  위와 같이 기존의 Widget 블루 프린트에서 2개의 자식 WBP를 만들었습니다.이제 이 2개의 위젯을 배치한 Overlay Widget으로 가보겠습니다.  WBP_Overlay는 기존에 만든 WBP들과는 다르게 Canvas Panel을 사용합니다.Canvas Panel은 기존에 사용하던 Box에 비해서는 사용비용이 비싸지만보여지는 시야 전체를 표현할 때는 편리하게 사용이 가능합니다. 이제 이 WBP_Overlay를 화면에 표시하기 위한 HUD 클래스를 만들겠습니다.1) Head Up Display를 표현하는 AuraH..

튜플

이번 포스트에서는 파이썬의 자료 구조중에서 튜플에 대해 알아보겠습니다.튜플은 흔히 알고 있는 자료구조와는 다르게 오직 읽기만 가능한 자료구조입니다.이런 튜플을 사용하는 이유는 메모리를 효율적으로 사용할 수 있고, 데이터의 손실이 없기 때문입니다. 1) 튜플의 사용튜플은 다음과 같이 사용할 수 있습니다.튜플이름 = (데이터1, 데이터2, ...) 또는 다음과 같이 괄호를 생략하는 것도 가능합니다.튜플이름 = 데이터1, 데이터2, ... 또한 튜플은 리스트와 같이 순서가 있는 자료구조이므로 리스트로 변환시키는 것도 가능합니다.단, 이 경우에 튜플로서의 장점은 사라지게 됩니다.리스트이름 = list(튜플이름) 반대의 경우로, 리스트를 튜플로 변환시키는 것도 가능합니다.마찬가지로 이 경우에 리스트로서의 장점은 ..

Python 2024.11.24

GameplayAbilitySystem을 이용한 RPG 프로젝트 - (9) UI를 설계하고 부모 체력 UI 만들기

이번 포스트에서는 사용자에게 데이터를 보여주고 사용자로부터 데이터를 입력받는 UI를 만들겠습니다.프로젝트에서 UI는 MVC 패턴을 사용하여 만들겠습니다.MVC 패턴은 Model, View, Controller의 3가지로 구성됩니다.각각 수행하는 역할에 차이가 있습니다.Model은 데이터를 다루는 쪽을 의미합니다. 프로젝트에서는 Attribute Set을 의미합니다.View는 보여지는 쪽을 의미합니다. 프로젝트에서는 UI를 의미합니다.Controller는 Model의 정보를 View로 전달하거나 View의 정보를 Model에 전달합니다. 따라서 이를 위해 View와 Controller 역할을 수행하는 클래스를 만들겠습니다.언리얼에서 UI 역할을 하는 Widget들은 UUserWidger 클래스에서 상속되므..

파이썬의 리스트

이번 포스트에서는 파이썬에서 리스트란 무엇인지와 이를 다루는 방법을 알아보겠습니다.파이썬에서 리스트는 다른 언어의 배열과 같은 역할을 수행합니다.이때 자료형에서 자유롭다는 파이썬의 특징이 드러나는데,리스트에 숫자형이든 문자형이든 불리안형이든 원하는 자료형의 데이터를 전부 집어넣을 수 있습니다.또한 다른 언어에서 배열의 인덱스를 접근하는 방법 역시 동일하게 사용이 가능합니다. 파이썬에서 리스트는 다음과 같이 만들 수 있습니다.리스트이름 = [데이터1, 데이터2, 데이터3, ...] 또한 공백 상태의 리스트를 만들어 나중에 데이터를 추가할 수도 있는데,공백 상태의 리스트는 다음과 같이 만들 수 있습니다.리스트이름 = [] 1) 리스트의 데이터 조작 함수리스트에서 데이터를 조작하는 함수들은 다음과 같습니다.1..

Python 2024.11.23

GameplayAbilitySystem을 이용한 RPG 프로젝트 - (8) Attribute Set을 만들고 적용하기

이번 포스트에서는 본격적인 GE를 도입하기 이전에 Attribute를 건드려보겠습니다.Actor 클래스를 하나 추가하여 기존에 만든 Attribute Set의 Attribute 중 하나인 Health를 변경하겠습니다.해당 클래스의 코드는 다음과 같습니다. 1) GE 설계 이전에 Attribute를 변경할 AAuraEffectActor#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "AuraEffectActor.generated.h"class USphereComponent;UCLASS()class AURA_API AAuraEffectActor : public AActor{ GENERATED_BODY() public: ..

collections 라이브러리의 Counter 메소드

이번 포스트에서는 collections 라이브러리의 메소드 중에서 Counter 메소드를 사용하는 법을 알아보겠습니다.Counter 메소드는 리스트나 문자열과 같은 자료형의 요소에서값이 같은 요소가 몇 개인지 확인하는 용도로 사용합니다. Counter 메소드의 연산 결과는 기본적으로 Key와 Value의 쌍으로 이뤄진 dictionary이므로이를 통한 연산도 가능합니다.이것을 예제를 통해 알아보겠습니다. 1) Counter 메소드 예제import reimport collectionstext = "1. 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세 무궁화 삼천리 화려 강산 대한 사람 대한으로 길이 보전하세 2. 남산 위에 저 소나무 철갑을 두른 듯 바람 서리 불변함은 우리 기상일세 무궁..

Python 2024.11.22