
프로그래밍에서 가장 중요하다고 할 수 있는 두가지. 조건문, 반복문 중에 조건문에 대해서 알아보자. swift언어는 어떤식으로 조건을 검사하고 분기를 나눌 수 있을까? if-else if-else 부터 알아보자. 다른 언어들과 개념상 크게 다른점은 없다. if 다음에 오는 조건문의 참, 거짓에 따라 뒤따라오는 코드를 실행할지 안 할지 분기가 나뉜다. let age = 18 if (age 60) { // too old } else { // can enter } 실행 코드가 2줄 이상일 때는 반드시 {}로 묶어 주어야 한다. 단 한 줄 이어도 묶어주는 게 가독성 이 더 높아지므로 한 줄도 묶어주자. 논리적으로 조건문을 통과하지 못했을 때 특..

swift의 특징 중 하나인 optional에 대해 알아보자. 생소한 문법이라 처음에는 많이 놀랐는데, 알고 보면 익숙한 기능을 간결하게 작성할 수 있도록 해주는 문법이라는 것을 알 수 있다. ? ?????????? optional 변수를 선언하는 문법이다. 즉 변수에 적용시킬 수 있는 특징이라고 볼 수 있다. let으로 선언한 변수는 값이 바뀌지 않는 상수가 되고, var로 선언한 변수는 값이 변할 수 있는 변수가 되는 것과 마찬가지로 optional로 선언한 변수는 값을 가질 수도, 가지지 않을 수도 있다. 즉, optional로 선언된 변수는 값이 없는 nil을 담을 수 있다. nil 값이 없는 “상태”를 말한다. Int 변수에 number에 0을 담는다고 해서 이 변수에 값이 없는 것은 아니다. ..

애플에서 발행한 공식 swift 학습서인 The Swift Programming Language를 공부 하면서 작성하는 포스팅. 쉬운 개념도 그냥 넘기지 말고 하나하나 곱씹어서 생각해 보면서 공부하자. swift는 2014년에 애플에서 발표한 프로그래밍 언어이며 컴파일러 언어이다. 기존에 사용하던 objective-c보다 빠르며, xcode에서는 초보자를 위해 인터프리터 처럼 동작하는 playground기능을 제공한다. 변수 기본적인 선언 방법은 c/c++과 많이 다르다. 최신 언어인 만큼 java, scala 같은 언어와 비슷한 것 같다. // attribute name : type = value let name: String = "사나" var age: Int = 24 변수의 선언은 기본적으로 위 틀..

UI는 데이터를 화면에 맞게 구성해서 보여주는 것도 중요하지만 사용자의 입력, 데이터의 변동에 따라 유동적으로 움직이는 효과가 굉장히 중요하다. 잘 만든 transition과 animation은 속도감도 주고 앱 자체의 완성도도 올려준다. PPT를 잘 만들려면 애니메이션이나 모핑 같은 기술을 사용해야 하는 것과 같다. 리스트를 만들어 볼 건데, 이 리스트는 간략하게 요약된 노드가 보이지만, 각 노드에 있는 버튼을 누르면 커지면서 세부 내용이 보이도록 할 거다. 먼저 리스트를 채울 노드를 만들어 보자. Stack으로 레이아웃을 구성하고 우측에 버튼을 추가한다. showDetail이라는 변수를 추가해서 이 변수에 따라 노드에 제목만 표시할지, 세부 내용도 같이 표기할지 분기하도록 한다. 이 값을 실시간으로 ..

위도우 메이커는 궁극기를 쓰면 벽 뒤에있는 적들의 실루엣을 볼 수 있다. 3D 게임에서 벽 뒤에있는 물체를 볼 수 없는 이유는 렌더링을 할 때 카메라와의 거리를 계산해서 더 가까이에 있는 물체를 그리기 때문이다. 너무 당연한 자연현상이지만, 이 자연의 법칙을 무시하고 벽을 투시하는 위도우 메이커의 시야를 디지털 세계에서 간접적으로 경험해보자. 벽 뒤에있는 물체를 화면에 그리기 위해서 Custom Depth라는 값을 사용할것이다. 3D 세상의 모든 물체들은 그것이 벽 뒤에있더라도, 좌표를 가지고있다. 그리고 엔진은 이 좌표들을 현재 카메라의 위치를 기준으로 계산하여 화면에 그리는데 이 때 카메라와 카메라에 보이는 물체(pixel) 사이의 거리를 Scene Depth라고 한다. 기본적으로 모든 물체는 Sce..

Path를 사용해서 화면에 그림을 그리는 방법을 알아보자. openGL이나 window GDI를 사용하는 것과 비슷하다. 화면에서 시작점으로 이동하고 선을 그리고 채우는 등의 작업을 할 수 있다. 공식 사이트에 나와있는 육각형 그리기를 따라해보면서 어떻게 동작하는지 알아보자. HexagonParameters 육각형을 그리기 위해 필요한 각 점들의 위치를 상대적으로 계산할 수 있는 구조체를 정의한다. 꼭지점을 그릴 때 필요한 vertex의 상대적인 위치값이지만 원리는 이 포스팅에서 중요한게 아니기 때문에 설명을 생략한다. points는 순서대로 육각형의 12시 방향 vertex부터 반시계방향으로 정의되어있다. CGFloat이라는 자료형을 사용한다는 것만 유의하고 넘어가자. struct HexagonPara..

첫번째 view는 sticky header를 만들어보자. AppStore에서 많이 볼 수 있고, 배너가 있는 view에서 주로 사용된다. 설계 상단에 배너이미지를 넣고 스크롤 할 수 있도록 아래에 적당한 내용을 추가한다. 배너는 이미지와 텍스트로 구성하며 아래로 스크롤을 하면 이미지가 스케일되면서 윗변이 화면의 상단에 붙어있는듯한 효과를 준다. 구현 var body: some View { ScrollView(.vertical) { GeometryReader {g in // content } } .edgeIgnoringSafeArea(.top) } 스크롤 기능이 있어야하기 때문에 ScrollView로 시작한다. 노치를 무시하기 위해서 상단 SafeArea를 무시하도록 설정한다. 이 안에 세로로 컨텐츠들을 ..

대부분의 게임에는 Save/Load 시스템이 있다. 로그라이크 장르처럼 세이브가 없는 게임도 있지만 그런 게임들도 클리어 횟수라던지 해금요소들이 저장되어 게임을 실행할 때마다 저장파일을 불러오기도 한다. UE4에서 게임을 어떻게 저장하는지 알아보자. 데이터를 저장하고 불러오는 등 단순한 기능은 blueprint로 구현할 수 있도록 되어있다. 물론 복잡한 저장데이터를 저장하거나 저장하고 불러올 때 특별한 처리를 해야한다면 c++코드가 필요할 수도 있지만 단순한 기능만 먼저 알아보자. SaveGame 기본적으로 SaveGame이라는 클래스의 인스턴스를 저장하고 불러온다. 이 SaveGame은 UObject 클래스로 blueprint로 만들 수 있다 사용자는 어떤 데이터를 저장할지 변수 형태로 추가하면 된다...
- Total
- Today
- Yesterday
- 수학
- swift
- 운영체제
- winsock
- C++
- 알고리즘
- machine learing
- 데이터베이스
- 국내여행
- database
- Cocos2d-x
- scala
- ue4
- SwiftUI
- Git
- 자료구조
- Java
- SHADER
- Spring
- DesignPattern
- rxswift
- OS
- JSP
- C
- C/C++
- ios
- SOCKET
- 드라마
- mongoDB
- game
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |