개요Actor와 Actor Component를 가지고 캐릭터 주위를 공전하는 Sphere를 만들어 보자. 튜토리얼에서 배울 수 있는 것들Actor Component를 Actor에 추가하는 방법.물체가 원 운동을 하게 하는 방법.Actor Component를 다루는 방법. Actor - Planet먼저 공전을 할 sphere를 만들어보자. 이 클래스는 static mesh component와 actor component를 추가만 하며, 움직이는 부분은 actor component가 담당하도록 할 것이다. Unreal EditorActor를 상속받는 Planet C++클래스를 생성한다. Code Editor헤더에 사용할 인스턴스를 선언하고, 사용할 헤더를 cpp에 추가한다. Planet은 움직이기만 할 뿐 ..
개요언리얼 엔진(이하 언리얼)을 사용해서 키 입력을 받아서 처리할 수 있는 튜토리얼 프로그램을 만들어보자.홈페이지에 설명이 나와있지만 최신 버전이랑 맞지 않는 관계로 최신 버전에 맞게 알아보도록 하자. 입력언리얼에서 사용하는 입력은 크게 두 종류가 있다.Actionwindows나 다른 플랫폼에서 사용하는 키 입력과 비슷하게 동작한다. 입력한 순간, 입력되고 있는 도중, 입력이 끝났을 때 등에 따라 이벤트를 발생시킨다. Axis지정된 상수값을 전달하는 입력이다. 매번 호출되며, 해당 키가 눌리는 동안 정해놓은 값이 전달되고, 입력이 없으면 0이 계속 전달된다. 따라서 bind시킨 함수에서 매개변수로 전달받은 값을 더하거나 빼는 행위는 좋지 않다. 기본 구현우선 pawn을 상속받는 C++ 클래스를 추가한다...
개요 C++ 11에 추가된 bind라는 것을 알아보자. bind는 C++이 함수형 프로그래밍을 할 수 있도록 도와주는 기능으로, 함수를 변수처럼 사용하거나 함수의 특정 파라미터를 고정시킨 새로운 함수를 생성할 수도 있게 해준다. std::bind 일단 기본적인 bind 방법은 다음과 같다. #include #include int Calc(int a, int b, int c) { return (a + b) * c; } int main(int argc, char* argv[]) { auto bindedCalc = std::bind(Calc, 3, 4, 5); std::cout
개요scala는 특정 패턴을 검사할 수 있는 패턴 매칭 문법을 제공한다. 패턴 매칭이란 어떤 변수 또는 조건식이 만족하는 경우의 수에 따라 다르게 동작하도록 하는 것을 말한다.match는 C++의 switch와 비슷하지만 훨씬 강력한 기능을 제공하며 이를 통해 더 추상적고 간결한 코드를 작성할 수 있다. match기본적인 match문법의 구조는 다음과 같다. [matching object] match { case [case] => [do code] case [case 2] => [do code] ... } scala는 위 문장에서 match object에 대해 일치하는 case를 순서대로 검사하다가 조건에 맞는 case를 만나면 해당 코드를 실행하고 match문을 탈출한다.case로 검사할 수 있는 방법..
개요scala는 함수형 언어이며 모든 것이 함수로 되어있다. 예를들면 1 + 2라는 연산은 1이 +라는 함수를 호출해서 2를 파라미터로 넘겨준다는 의미를 가지고 있는 것이다.// 1.+(2) 정도로 표현할 수 있겠다.scala에 어떤 종류의 함수들이 있고, 그 함수를 어떻게 사용하는지 알아보자. 기본 함수 정의기본적으로 사용자 함수를 만들기 위한 형식은 다음과 같다. def [func id]([param id]: [type], …): [type] = { [function] } 위 형식에서 함수 내용이 한줄 정도로 짧다면 {}를 생략할 수 있고, 반환 자료형을 명시하지 않아도 scala 컴파일러가 반환되는 값으로 자료형을 추론하기 때문에 문제가 되지 않는다.scala는 함수를 정의할 때 그 함수가 하나의 ..
개요scala의 변수는 우리가 흔히 생각하는 변수와 개념으로 사용하는 변수(var)와 변하지 않는 값을 의미하는 값(val)이 있다. 그중에서 scala는 값(val)사용을 지향하는 편이다.값(이하 val)은 선언과 동시에 초기화 할 때만 값이 정해지며 이후에 수정하려고 하면 컴파일 에러를 발생시켜, 코딩 단계에서 버그 발생 확률을 낮출 수 있다는 장점이 있다. 개념만 봤을 때 C++의 const 변수와 같다고 할 수 있다. 다만 하나의 함수에서 너무 많은 변환이 필요하다면 메모리를 고려하여 변수(이하 var)를 사용할 수도 있다. 또한 구조상 억지로 val을 사용하려고 했을 때 코드가 오히려 더 복잡해지는 경우에 제한적으로 var를 사용할 수 있다. 어디까지나 val을 지향하고 var를 지양 할 뿐 강..
Listscala에서 지원하는 collection중 하나로 연결 리스트를 생성하고 관리할 수 있다. List 생성scala는 List를 생성하는 여러 방법을 제공한다.일반적으로 List를 생성하는 코드는 다음과 같다. val numbers = List(1, 2, 3, 4, 5) 다음은 scala에서 정의한 ::연산자를 이용해 List를 생성하는 코드이다. val numbers = 1 :: 2 :: 3 :: 4 :: 5 :: Nil scala 문법이 그냥 이렇게 생겼다고 이해해도 되지만 왜 저런 생성이 가능한지 알아보자. Nil아무것도 들어있지 않은 empty List를 재정의한 표현이다. scala의 List는 마지막에 이 Nil을 넣어줘야 그 List가 거기까지 라고 인식한다. 연산자 ::c++의 연산..
개요패킷을 보낼 때는 해당 패킷의 내용과 관계없이 send함수를 호출해서 패킷을 보내기만 하면 된다. 하지만 패킷을 받을 때는 상황이 좀 다르다. 받은 패킷이 어떤 패킷이냐에 따라 호출할 함수 또는 수행할 연산 등이 달라지므로, 그 때 그 때 적절한 동작을 수행할 수 있도록 만들어 주어야 한다.고민을 하던 중 cocos2d-x 엔진의 KeyboardListener가 생각이 났다. KeyboardListener는 내 class의 instance를 등록시켜 놓으면 내 class에 있는 KeyboardListener함수로 callback이 되도록 구성되어있다.덕분에 key event들을 한곳에서 처리하지 않고 필요한 객체에서 따로 처리할 수 있다.SocketListener를 구현해 보자.수신받은 패킷에서 꼭 ..
- Total
- Today
- Yesterday
- C++
- scala
- DesignPattern
- 알고리즘
- Spring
- 운영체제
- 데이터베이스
- winsock
- 수학
- 국내여행
- database
- rxswift
- mongoDB
- JSP
- C/C++
- ios
- SOCKET
- 자료구조
- OS
- ue4
- SHADER
- swift
- C
- Cocos2d-x
- SwiftUI
- game
- Java
- Git
- machine learing
- 드라마
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |