본문 바로가기

분류 전체보기82

C언어에서의 16진수, signed int와 unsigned int 문제 발생 만약 int형 변수의 32비트에서 상위 4비트만 떼어내려고 하면 어떻게 해야 할까? 이건 오른쪽으로 28비트만큼 쉬프트 하면 얻을 수 있다. int bit; result = bit >> 28; 그러나 여기서, 만약 bit가 음수라면 어떨까? C언어는 부호가 있는 정수형 연산에서, 왼쪽 쉬프트()는 산술 쉬프트로 계산한다. 여기서 논리 쉬프트는 무조건 빈자리를 0으로 채운다는 뜻이고, 1101 > 1 = 0010 1101 >> 1 = 1110 그렇다면 음수를 오른쪽으로 28비트 쉬프트하게 되면(bit >> 28), 상위 비트는 모두 1로 채워지게 된다고 예상할 수 있다. 이를 해결하려면 쉬프트와 동시에 *마스크를 씌워줘서 상위 비트를 지울 수 있다. (* 마스킹(Masking): 숫자에 비트곱 .. 2021. 5. 3.
새로운 경험은 즐거운 것이어야 한다 Out Of Index Out Of Index - Experimental Game Festival Out Of Index - Experimental Game Festival OOI is an experimental game festival in South Korea. The goal of the festival is to inspire the game industry with new ideas and experimental energy. www.outofindex.org 오늘 본 거 여느 때와 같이 게임 개발을 하고 있던 때... 그러다가 오늘은 Out Of Index라는 게임 행사를 발견했다. 2014년부터 2019년까지 진행했던 게임잼 페스티벌로, 세계 각지의 실험적인 게임을 소개하는 행사이다. Ou.. 2021. 5. 3.
[운영체제 공부] 운영체제 개요 해당 글은 운영체제를 처음 공부하는 사람이 공부하기 위해 쓴 글입니다. 강동현 교수님의 강의 내용과 책 "운영체제 아주 쉬운 세 가지 이야기" 제2판을 공부하고 이를 요약해본 것입니다. 나중에 다시 읽을 수 있게 정리한 글이라 다른 사람들이 읽기 쉬울지는 잘 모르겠지만, 다른 분들에게도 도움이 된다면 좋겠습니다. 이 글은 처음 운영체제를 공부하는 사람을 대상으로 하고 있는데, 운영체제를 아무것도 모르는 사람이 공부한 내용이다 보니 다소 오류가 많습니다. 오류가 있다면 지적 부탁드립니다. 애플리케이션 프로그램은 어떻게 실행될까? 최근의 애플리케이션 프로그램은 고수준 프로그래밍 언어로 작성된다. 고수준 언어에는 과거의 것인 Fortran, Basic부터 시작해서 최근에는 C 계열 언어, Java 계열 언어,.. 2021. 3. 24.
ScriptableObject를 저장하는 법: EditorUtility.SetDirty(Object target) 유니티 에셋(ScriptableObject, Monobehaviour)을 저장하기 Unity - Scripting API: EditorUtility.SetDirty (unity3d.com) Unity - Scripting API: EditorUtility.SetDirty You can use SetDirty when you want to modify an object without creating an undo entry, but still ensure the change is registered and not lost. If the object is part of a Scene, the Scene is marked dirty. If the object may be part of a Prefab inst.. 2021. 3. 17.
백준 2922 즐거운 단어 오늘의 문제: 2922번: 즐거운 단어 (acmicpc.net) 2922번: 즐거운 단어 상근이는 자신이 다니는 학교에서 영어단어를 가장 많이 외우고 있다. 그 비법은 바로 조기교육이었다. 상근이는 젖병을 물기도 전에 영어 단어를 외웠다. 따라서, 지금은 자리에 앉으면 사전을 www.acmicpc.net 도무지 풀리지 않아서 일주일 가까이를 붙잡고 있었던 문제. 오랜만에 코딩 문제를 풀어서 그런가 정말 풀리지가 않았다... 결국 구글링 찬스를 써서 약간의 힌트를 봤더니 해결되었다; 조건에서 (1) 자음이나 (2) 모음이 연속으로 세 개가 나오면 안 되고 (3) L을 반드시 포함해야 한다고 했으므로 문자를 자음, 모음, L 세 개로 나누어서 단순화할 수 있겠다. 다른 글에서도 찾을 수 있지만, 즐거운 단어.. 2021. 2. 16.
게임에서의 방어력은 어떻게 구현할까? RPG에서 꼭 나오는 개념 RPG, 액션 게임 등 적과 맞서 싸우는 게임에서 공격력, 체력, 방어력은 정말 자주 등장하는 개념입니다. 공격력, 체력, 방어력이 언제 나왔는지는 모르겠지만 게이머에겐 정말 익숙한 개념이죠. 게임에서 공격력, 체력, 방어력은 플레이어가 얼마나 강한지를 측정하는 척도입니다. 공격력이 강하면 적을 좀 더 쉽게 제압할 수 있고, 체력과 방어력은 적의 공격으로부터 얼마나 더 잘 버티느냐를 결정합니다. 공격력, 체력, 방어력만 있는 게임이 있다고 해볼까요? 공격력, 체력은 이해하기 쉽습니다. 적을 공격하면 공격력만큼 체력이 감소시킬 수 있습니다. 계속해서 공격하다 보면 체력이 0에 달하게 되고 캐릭터가 죽게 되죠. 그에 반해 게임에서 방어력은 피해를 얼마나 덜 받느냐를 결정합니다. 방.. 2021. 2. 14.
C# DirectoryNotFoundException 오류: 파일 경로가 잘못되었을 때 MSDN 링크: DirectoryNotFoundException 클래스 (System.IO) | Microsoft Docs DirectoryNotFoundException 클래스 (System.IO) 파일이나 디렉터리의 일부를 찾을 수 없을 때 throw되는 예외입니다.The exception that is thrown when part of a file or directory cannot be found. docs.microsoft.com DirectoryNotFoundException은 파일이나 디렉터리 이름을 찾을 수 없을 때 발생하는 오류이다. 파일이나 디렉터리 이름을 잘 확인하면 해결할 수 있다. 예시 예시로 아래는 Unity에서 Log를 출력하려고 급조한 스크립트이다. 나중에 보니 Log Vi.. 2021. 1. 11.
유니티 Log Viewer 소개: 빌드하고 Debug.Log를 보고 싶을 때 공들여 만든 유니티를 실제로 플레이할 수 있는 파일로 만들려면 빌드(Build)를 해야 합니다. 그런데 빌드하는 시간이 많이 걸리기 때문에, 보통 유니티 에디터에서 모든 작업을 끝내고 빌드하게 됩니다. 그래서 버그를 모두 테스트하고 나서 빌드하는 방식으로 진행합니다. 그런데 빌드하고 나면 유니티 에디터에서는 발견할 수 없었던 버그가 하나씩 발견될 때가 있습니다. 정말 간단한 버그라면 쉽게 바로잡을 수 있겠지만, 유니티 에디터에서는 멀쩡하던 것이 오류를 내기 시작했다면 버그를 고치는 일이 정말 어렵게 됩니다. 가장 문제는 뭐가 문제인지 모른다는 것입니다. 유니티 에디터에서는 컴파일 오류, 런타임 오류 등 다양한 문제가 발생하면 편리하게 로그를 띄워줍니다. 개발자가 Debug.Log()를 통해 원하는 로그를.. 2021. 1. 11.
Unity VSCode에서 오류가 날 때: CS0246 형식 또는 네임스페이스 이름을 찾을 수 없습니다. using 지시문 또는 어셈블리 참조가 있는지 확인하세요. 이번 글은 아래의 Unity Answer에 있는 답변글을 참조하였습니다. VS Code does not find some classes. cs0246/cs0103 - Unity Answers VS Code does not find some classes. cs0246/cs0103 - Unity Answers answers.unity.com Unity VSCode에서 오류가 날 때 유니티에서 VSCode를 사용할 때 다음과 같은 오류가 발생할 때가 있습니다. 한글 cs0246: 형식 또는 네임스페이스 이름을 찾을 수 없습니다. using 지시문 또는 어셈블리 참조가 있는지 확인하세요. 영문 cs0246: The type or namespace name could not be found (are you mi.. 2020. 12. 26.