프로그래밍 / C++ / 언리얼

전체 글 82

[C++] rand(), 삼항연산자 이용

// 실습1. 3 ~ 7 사이의 랜덤한 숫자를 출력하는 프로그램을 작성하자. // 실습2. 가장 작은 값과 큰 값을 입력 받아서, 그 사이의 임의의 값을 출력하는 프로그램을 작성하자. // 실습3. 프로그램을 실행하면 내부적으로 1 ~ 10 사이의 숫자가 정답으로 정해진다. // 유저가 1 ~ 10 사이의 숫자를 입력하면 맞으면 true, 틀리면 false를 출력한다. (숫자 맞추기 게임) #include #include using namespace std; int main() { // 실습1 srand(time(NULL)); // 다양한 난수를 위해 time함수를 사용 int number = rand() % (7 - 3 + 1) + 3; // 랜덤값을 담을 변수 선언 cout bNum; // 큰 값 입..

[C++] 여러가지 연산

#include #include #include using namespace std; /* [연산자] 데이터를 가공(연산)하는 모든 명령에 필요한 것들 1) 어떤 종류의 연산자들이 있는지? 2) 우선 순위 : 어떤 순서로 연산이 진행되는지? 3) 결합 순서 : 좌측부터 연산하는 연산자, 우측부터 연산하는 연산자 1. 사칙연산 : 산술연산자 + : 더하기 - : 빼기 * : 곱하기 / : 나누기11 / 3 => 3 % : 나머지11 % 3 => 2 *, /, % > +, - 2. 대입연산자 = : 왼쪽 항의 값을 대입한다. (복사한다) 3. 복합대입연산자 += : a += b;=> a = a + b; -= : a -= b;=> a = a - b; *= : a *= b;=> a = a * b; /= : a ..

[언리얼 엔진] FPS게임 움직임 구현

언리얼 엔진은 캐릭터의 움직임을 1인칭으로 구현할수있고, Camera-SpringArm과같은 툴을 이용해 3인칭 형식으로 구현할수있다. 바인딩은 GTA나 3인칭 슈팅게임등 FPS게임에서 필수로 쓰이므로 꼭 알아두어야 하는 개념이다. WASD 움직임 구현하기 우선 에디터내에서 키값을 세팅해주어야하는데, Edit - ProjectSettings - Input - Bindings 에 들어가면 키셋팅을 할 수있다. MoveForward는 W, S, MoveRight는 A, D 방향키를 담당. Scale은 1.0 단위로 설정하는데, 이값은 각 함수의 매개변수인 AxisValue값에 대응된다 [헤더파일 선언] 헤더파일에는 MoveForward, MoveRight 함수를 선언한다. SetupPlayerInputCom..

[언리얼 엔진] Actor 회전시키기 (사용자 입력, AI 회전구현)

언리얼 엔진에는 플레이어가 키보드나 마우스를 입력함에따라 액터를 회전시키게할수있는 여러 API들을 가지고있다. 이뿐만아니라 플레이어가 조종하는것 외에 액터가 특정대상을 바라볼수있게하는 AI기능을 갖추게 할 수도있다. 상속관계는 이렇다. 부모클래스인 BasePawn 아래에 자식클래스인 Tank, Tower를 만든다. (컴포넌트 안에 메쉬삽입하는 과정은 생략한다.) RotateTurret 멤버함수는 탱크(아군)와 타워(적군) 모두 필요한 기능이므로 부모클래스에 정의를 한다. 매개변수타입은 FVector타입이며 (0.f, 0,f 0,f)의 좌표형식으로 받는다. 탱크는 플레이어가 마우스로 움직임에 따라 화면이 회전하도록 설정하고, 타워는 일정범위안에 탱크가 감지되면 탱크를 향하도록 회전하도록 하는 로직을 구성한..

[C++] 자료구조 - 선형리스트(Linear List) / vector 클래스 기능 정리

vector 클래스 개요 std::vector 클래스는 c++의 표준라이브러리 배열 기능 중 하나로, 데이터관리, 알고리즘 분석등 정말 유용하게 쓰이는 기능이다. 벡터의 저장은 자동으로 처리되며 필요에 따라 유동적으로 확장 및 축소할수있다. 벡터는 일반적으로 정적 배열보다 더 많은 메모리 공간을 차지한다. 앞으로 추가될 요소들을 위해 더 많은 메모리가 할당되는데, 이과정에서 vector클래스는 원소가 추가되거나 삽입될때 메모리 재할당이 발생한다. vector 클래스의 특징 vector 클래스는 배열에 삽입하거나 추가해서 공간을 다 차지하게 되면 원소를 담을 바구니들을 다시 생성하는 작업에 들어간다. vector클래스의 특정 멤버함수를 통해서 추가 공간들이 여유롭게 주어지는데, 이 추가된 여유공간들은 ca..

[C++] string 클래스, 간편한 문자열 기능 알아보기

String 클래스 개요 기존 C언어에서 문자열을 표현할때, 스트링 표현방식을 배열방식으로 구현하였는데, 스트링 마지막에 null값을 붙여서 스트링의 마지막을 나타냈다. 매번 문자열을 처리하는게 번거로웠는데, C++ 표준 라이브러리는 스트링을 좀 더 잘 표현하도록 std::string 클래스를 제공한다. std::string 클래스는 basic_string이라는 클래스 template의 인스턴스로서, 의 함수 적용 방식은 비슷하지만 메모리를 알아서 할당처리해주는 기능이 들어있어 기존 문자열 처리방식의 복잡도를 어느정도 해소시켜주고있다. String 클래스의 장점 • 간단하다. 내부적으로 기본 문자 타입과 배열 구조체로 처리한다. • 가볍다. 제대로 사용하면 메모리를 꼭 필요한 만큼만 사용한다. • C프로..

[컴퓨터]메인보드 MSI MAG B660M 박격포 DDR4 사용기

화이트 톤으로 깔맞춤했는데, 실버톤의 b660 박격포가 정말 잘 어울리는것을 확인 할 수 있다. 케이스 색상과 상관없이 박격포의 실버톤은 호환성은 어느 케이스나 좋을것 같다는 생각이 듦. 무엇보다 msi b660 박격포 시리즈의 가장 큰 장점이라고 생각하는것이 바이오스 환경입니다. 정말 편리했던것은 xmp램설정이 간편하다는것이였다. 간단하게 바이오스에서 xmp램 설정 진행. ​ 추후에 삼성 디램으로 3600mhz cl18도 설정해보았는데 무리없이 잘 작동확인. ​ 저는 가벼운 작업을 하기에 3200mhz짜리 메모리를 적용. ​ Cpu-z 상으로 확인했을때 좀 전에 msi 바이오스로 셋팅한 xmp 램이 잘먹히는것을 확인 할 수 있다. 다른 저가형 메인보드는 수동이나 xmp램 오버가 잘 먹히지 않는경우가 많..

반응형