반응형

분류 전체보기 221

SwiftUI 다크 모드 지원 : 모드 변경시 색상 자동 변경

iOS는 다크 모드를 지원합니다. iOS에서 다크 모드 변경시 iOS에 의하여 앱의 네비게이션 바의 색상이나 기본 글자색 같은 경우는 자동으로 변경됩니다. 하지만 사용자가 직접 설정한 색은 다크 모드에 맞게 변경되지 않습니다. 이런 이유로 자동으로 변경되는 색상과 그렇지 않은 색상의 부조화로 인하여 화면의 가독성이 떨어지거나 화면 색상이 깨진거처럼 보기 좋지 않게 됩니다. 여기서는 다크 모드시 자동으로 색상이 변경하는 방법을 알아보도록 하겠습니다. 위 스크린샷처럼 우선 Asset를 프로젝트에서 선택하여 줍니다. 그 다음으로 서브 메뉴가 나오게 한 뒤에 "New Color Set"을 선택하여 줍니다. 스크린샷의 BackGroundColor와 같이 색상을 선택하면 Any Appearance와 Dark가 나옵..

iOS 프로그래밍 2022.10.18

나만의 프로젝트(My Own Project) 앱을 개발한 후에...

나만의 프로젝트는 ios, iPhone용 개인 프로젝트 관리 앱입니다. 프로젝트 관리를 위한 앱이지만 팀단위의 협업에 최적화된 프로젝트 관리가 아니라 개인의 프로젝트 관리에 초점을 맞춘 앱입니다. 이 앱은 다양한 프로젝트를 정의하고 정의된 프로젝트에 따라서 할 작업들을 정의하고 작업에 따라 할 일들을 정의합니다. 그리고 할 일들의 진행 상태를 관리합니다. 앱은 이렇게 정의되고 관리되는 프로젝트의 진행상황을 한눈에 보게 해줍니다. 필요 시 텍스트로 변환하여 다른 프로그램에서 데이터를 편집해서 사용하거나 백업도 가능합니다. 실제로 이 앱도 개발 중인 이 앱의 베타 버전을 사용하여 개발 후반 부에는 개발이 관리되었습니다. 이번 앱은 이전에 개발한 폭격 방어자와는 다르게 광고를 살짝 넣은 무료 버전으로 출시하였..

개발이야기 2022.10.12

나만의 프로젝트

개인적으로 하는 프로젝트나 할 일들을 프로젝트로 만들어 진행 상황을 직관적으로 관리하세요! 단순히 할 일 목록으로 관리하는 것보다 전체적인 진행 상황을 파악하고 관리하는데 도움이 될 것입니다. 이 앱의 사용법은 간단합니다. 프로젝트에 작업들을 정의합니다. 그리고 작업당 할 일들을 정의하고 진행 상황을 관리하면 됩니다. 개인의 프로젝트 관리에 초점이 맞추어져 있어 회사 등의 단체에서 하는 프로젝트 관리와 같은 복잡함이 없습니다. 프로젝트라고 개념을 가지고 우리는 일상의 많은 일들을 프로젝트로 정의할 수 있습니다. 간단한 예로 ‘자가용 운전하기’라는 프로젝트를 만들 수 있습니다. 우리는 자가용을 운전하기 위해서 운전 ‘면허 획득’ 이라는 작업과 ‘차 구매’라는 작업을 만들 수 있습니다. 그리고 ‘면허 획득’..

나만의 프로젝트 앱 개인정보 처리방침

‘나만의 프로젝트’ 개인정보 처리방침은 다음과 같습니다. 개인 정보 처리방침이 수정될 경우 다시 공지하겠습니다. 개인 정보는 휴대 기기에 저장되며 아래에서 이야기한 용도 외에 사용되거나 외부에 제공되지 않습니다. 광고를 위하여 식별할 수 없는 정보(unidentifiable information)를 모을 수 있습니다. 식별할 수 없는 정보(unidentifiable information)가 아래와 같이 사용될 수 있습니다. Firebase/ Google Analytics 회사:Google Inc. 목적:마케팅 성과 측정과 품질 향상 AdMob SDK 회사 : Google Inc. 목적 : 광고 삽입 개인 정보에 대하여 궁금하신 점이나 의견이 있으시면 아래 연락처로 연락주시기 바랍니다. - email : ..

젤다 야생의 숨결을 클리어한 후에...

이 게임은 일본에서 명작으로 평가받은 젤다 시간의 오카리나를 과거에 재미있게 플레이한 경험이 있어 비슷한 액션 RPG정도로 생각하고 플레이 하였습니다. 하지만 생각 밖에 너무나 다른 게임성에 굉장히 놀랐습니다. 2017년에 나왔지만 2022에도 여전히 인상적인 게임인 듯 싶습니다. 우선 이 게임은 자유도 높은 오픈 월드 RPG라서 놀랐습니다. 자유도 높은 MMORPG도 메인 퀘스트의 선후 관계가 있어 진행하는 것이 흔한데 이 게임의 퀘스트는 초반 이후 거의 선후 관계가 없습니다. 그냥 가논을 쳐부수는 큰 흐름의 퀘스트가 초반에 주어지는 것이 다입니다. JRPG는 스토리 위주로 선후 관계의 퀘스트 들을 진행하는 것이 일반적인데 이 게임은 그런 류의 게임이 아닙니다. 다양한 퀘스트가 있기는 한데 거의 사당을..

기타 2022.09.15

DirectX 9로 만든 데모: Nine Balls

DirectX 9로 만든 데모로 제목은 Nine Balls입니다. 특별한 의미는 없고 9개의 볼이 화면의 중심에 나오기에 제목을 그렇게 지었습니다. 오래 전에 취업용으로 P2P엔진 데모로 만들었던 것이 시작이었습니다. 이 글을 읽은 분들은 프로그래밍 공부 어떻게 하시나여? 이 데모는 간간히 3D 프로그래밍을 공부하면서 배운 것을 응용하여 적용하면서 확장된 데모입니다. 즉 3D 프로그래밍 학습용으로 만든 데모입니다. 서버 프로그래머여서 시간날 때 간간히 공부하다보니 다이렉트X가 9에서 11로 그리고 최근에는 12로 옮겨가는 추세여서 조금은 예전 프로그래밍을 한 거 같은 느낌도 듭니다. 하지만 3D를 공부하면서 느낀 점은 API에 집중하기보다는 관련 알고리즘이나 수학을 공부하는 것이 어떤 API를 사용하는가..

개발이야기 2022.08.14

슈퍼 마리오 오딧세이를 클리어 한 후에...

예전에 슈퍼패미콤으로 발매된 슈퍼마리오를 클리어한 후 실로 오랜 시간이 지난 후에 슈퍼 마리오 오딧세이를 플레이하여 클리어 하였습니다. 보잘 것 없지만 폭탄 방어자란 게임을 혼자 만든 후에 재밌는 게임은 어떻게 만들어야 하는가에 대한 무수히 많은 질문들이 떠올라 게임의 재미를 추구하기로 유명한 닌텐도의 게임을 플레이 해보았습니다. 간단한 게임이었지만 실제로 게임을 처음부터 끝까지 만드니 팀으로 개발할 때와는 달리 너무도 많은 한계를 경험하며 다른 게임은 어떻게 재미있는 게임을 만드는지가 궁금하여 플레이하게 되었습니다. 한마디로 이 게임을 말하자면 정말로 잘만든 게임이 무엇인지를 느끼게 해주었던거 같습니다. 게임의 코어적인 측면을 보자면 마리오 시리즈의 처음에 가져갔던 점프해서 적의 머리를 밟아 적을 없애..

기타 2022.07.17

폭격방어자 ver 1.1 업데이트

폭격방어자를 1.1로 업데이트 했습니다. 1인 개발로 만들었는데 유료라서 그런지 게임의 재미가 떨어져서 그런지 판매량이 절망수준이었습니다. 나름 일정기간 순위차트에 들었다는 것만이 위안이 되었습니다. 이번 업데이트는 그런 고민 속에서 만든 것이었습니다. 많이 플레이 해주기를 바라며 유료 가격도 반으로 줄였습니다. 다운로드 수가 적으니 유저의 전반적인 반응을 살피기는 어려웠습니다. 결국 지인들이 플레이 해보고 들려준 이야기와 비슷한 여러 다른 게임들을 해보며 느낀 점을 바탕으로 게임을 일정부분 재구성하였습니다. 또한 다양한 게임 아이디어를 새롭게 적용하여 기존 버전과는 조금 다르게 좀 더 치고 받는 성향의 게임이 되도록 개발하였습니다. 게임을 만드는 사람의 마음일 수도 있겠지만 무언가 부족한 기존 버전을 ..

개발이야기 2022.06.17

게임기획: 게임 난이도 조절 팁

잘 만든 게임의 몰입의 재미를 만드는 최고의 요소는 게임 난이도 일 것입니다. 아무리 잘 만든 게임이라고 해도 난이도가 너무 쉽거나 어려우면 게임의 재미를 느끼기 힘듭니다. 그래서 보통 게임들은 여러 난이도를 제공하기도 합니다. 게임난이도는 실제로 게임을 만들 때 가장 만들기 어려운 부분이기도 합니다. 이럴 때 사용할 만한 팁을 하나 말할까 합니다. 게임난이도를 조절할 때 보통은 테스트 스테이지를 만들 수 있을 것입니다. 이럴 때 속도, 공격력, 방어력 등등의 난이도를 만드는 요소들을 최고 수치로 요소별로 테스트해 봅니다. 그리고 해당 요소들을 가지고 게임에서 최고로 가져갈 수 있는 난이도 수준의 수치를 정합니다. 이후에는 개별적으로 테스트한 난이도를 조합하여 테스트를 해보고 최종 수치를 정합니다. 이렇..

개발이야기 2022.06.17

C++ 코루틴(coroutine) 활용 강좌: #4 : co_yield

이번 강좌는 co_yield 이용하여 값을 생산하면서 제어권을 다른 쪽으로 넘기는 예제를 살펴보도록 하겠습니다. 코루틴 상태 관련 객체로 cotask_enumarator을 정의하여 사용합니다. 구체적으로 값을 생산하는 함수A 예를 살펴보도록 하겠습니다. 이 예제는 Unity 등 C#에서 많이 쓰는 IEnumerator를 리턴하는 함수와 같은 cotask_func_enum 함수를 정의하고 있습니다. 이 예제는 C#에서 많이 쓰는 코루틴 기법을 C++에서 사용하는 법을 보여주고 있습니다. 예제 코드는 아래와 같습니다. #include #include #include #include #include #include using namespace std; template struct cotask_enumarato..

강좌 2022.05.24

C++ 코루틴(coroutine) 활용 강좌: #3 : co_return

이번 강좌는 co_await를 이용하여 함수 중간에 제어권을 다른 쪽으로 넘기다가 코루틴 함수의 끝에 co_return으로 값을 리턴하는 예제를 살펴보도록 하겠습니다. 예제는 실행 중간에 실행권을 멈추고 제어권을 다른 쪽으로 넘기면서 실행되다가 코루팀 함수의 끝에 값을 co_return으로 리턴하고 종료하는 코루틴 함수 A와 B를 보여주고 있습니다. C++ 코루틴(coroutine) 활용 강좌: #2 : co_await의 예제와 내용이 비슷한데 co_return으로 값을 리턴하고 코루틴 함수가 종료된다는 것만 틀립니다. 예제 코드는 아래와 같습니다. #include #include #include #include using namespace std; template struct cotask_return ..

강좌 2022.05.23
반응형