[C#] | Type 비교에서의 'is' 와 'GetType()'
·
개발/C#
개요격 자의 리메이크를 진행하며 Cell 구조를 적을때 GetEntitiesT> 함수를 보면 이러한 부분이 있습니다.is 라... 상당히 낯선 문법입니다.이건 대체 뭘까요?     isis 는 타입 비교 연산자입니다. 그러니까 우리가 흔히 이것들이 '일치 하는가' 에 대해 검사할때 '==' 연산자를 사용하듯이것들의 '타입'이 '일치 하는가'에 대해 검사할땐 'is' 연산자를 사용합니다. 특이한 점은 '타입'이 일치하는가에 대한 기준이 상당히 느슨해서 어떠한 타입의 서브 타입이여도 일치 한다고 판단합니다. 예제를 들어보죠.이러한 클래스 두개가 있다고 해봅시다.public class Entity {}public class Player : Entity {} is를 통해 타입을 비교하면 이렇게 결과가 나오죠.E..
RE : 격 자 : 세번째 프로젝트 # 2 : 맵 구조 수정
·
개발/FRACTiLE
개요잡다한 구조 수정은 일단 넘기겠습니다.간단하게라도 설명하고 가자면 플레이어 싱글톤인게 맘에 안들어서 플레이어 매니저를 따로 만들어줬습니다.    Entity일단 맵 구조를 수정하기 전에 Player와 Entity를 동시에 묶어주는 Entity 클래스를 만들어 주었습니다. 그 이유는 이 글에서 찾을 수 있습니다.https://sundg0162.tistory.com/44 Default Defense | 다섯번째 프로젝트 # 4 : Entity개요저번 글 적고 바로 적는 개발일지입니다.제가 어제 하루종일 적은 코드니 아직 머릿속에 생생합니다.     Vector2Entity를 적기 전에 일단 각각의 위치들을 훨씬 원활하게 관리하기 위해 Vectosundg0162.tistory.com 당연히 들어가기 귀찮으..
RE : 격 자 : 세번째 프로젝트 # 1 : 튜토리얼 구조 수정
·
개발/FRACTiLE
개요다른걸 만지기 전에 일단 구조를 뜯어고치는 것이 먼저입니다.그 시작은 눈에 잡혔던 튜토리얼 구조와 가장 심각한 맵 구조입니다.    Tutorial기존의 구조기존에 사용하던 구조는 다음과 같은 플로우를 띕니다.튜토리얼 한 스텝을 담당하는 Tutorial 클래스의 Update를 TutorialManager가 계속해서 실행시켜주고 Update에서 넘어오는 값이 true (현재 튜토리얼의 스텝이 완료 되었다는 뜻)라면 다음 튜토리얼로 넘기는 구조를 사용합니다. 수정나름대로 괜찮은 구조 같아보이지만 조금 수정해야할 이유가 바로 각각의 튜토리얼 스텝들이 모두 MonoBehaviour를 상속받기때문에 생성자 호출 없이 객체를 가져오기 위해 컴포넌트로 추가해야 하기 때문입니다. 그렇기 때문에 MonoBehavio..
자료구조(Data Structure)란?
·
자료구조/공용
개요'자료구조'라는건 엄청나게 중요한 개념입니다.프로그래밍에 조금이라도 발을 담궈보았다면 누구든 공감할 내용이죠. 프로그래밍에 소견이 없더라도 실생활에서도 여러가지 자료구조를 발견해낼 수 있습니다. 그래서 자료구조란게 뭐냐구요?    자료구조란?결론부터 한마디로 정리하고 가자면,자료구조란, 어떠한 데이터의 집합을 효율적으로 관리, 처리하는 방법 이라고 할 수 있습니다. 이 자료구조를 왜 사용해야 하냐 묻는다면 딱히 해줄 말이 없습니다.애초에 제가 역으로 묻고 싶어요. 어떻게 자료구조를 사용하지 않고 코딩을 하죠? 실생활에 빗대봅시다.여기 책이 하나 있습니다. 저희가 이 책들을 효율적이게 정리하려고 하면 어디에다가 담아야 할까요? ...네 그렇죠. 책장에 담아야겠죠?  이 책장이 코딩에서의 자료구조입니다...
RE : 격 자 : 세번째 프로젝트 # 0 : 리메이크? 리워크?
·
개발/FRACTiLE
개요이번 방학동안 전 하나의 활동을 해보기로 했습니다.바로 '격 자'의 리메이크!뒤에 할일이 산더미처럼 쌓여있지만 하기가 싫은걸요!!!!!!???? 그래도 짬짬히 시간내서 하는거니까 딴 활동들을 유기하는건 아닙니다.    리워크사실 말만 리메이크지 그냥 리워크입니다.기존 격자의 틀을 완전히 버리기엔 살짝 아쉽기 때문에 짜놓은 구조를 바탕으로 게임잼이라서 이상하게 짜놓았던 구조들을 수정 해나갈겁니다. 그중의 대표주자가 바로 그 악명높은 적 감지 코드입니다만... 여기서 말하기엔 좀 기니까 나중에 수정할떄 말하죠. 아무튼 리워크를 하는 이유는 제가 만든 게임 중 이게 가장 재밌는 게임이고 최근에 나온 엔진 프로젝트(UNNAMED)가 망했기 때문에 방학동안 어떻게든 무마하려는거죠.  뭘?무엇을 할것이냐~ 하면..
UNNAMED | 네번째 프로젝트 # Final : 완성
·
개발/UNNAMED
개요제목UNNAMED장르FPS 슈팅게임플랫폼PC개발 툴Unity (C#)개발 기간1달개발 인원1명      한 줄 소개최대한 재시도를 적게 하며 정해진 시간안에 스테이지를 통과하십시오!    게임 소개 영상https://youtu.be/eMNi-PQwVss?si=1gyBI8iPjGCj7sJm     깃허브https://github.com/SundG0162/UNNAMED GitHub - SundG0162/UNNAMED: 2024학년도 1학기 개인 프로젝트 산출물2024학년도 1학기 개인 프로젝트 산출물. Contribute to SundG0162/UNNAMED development by creating an account on GitHub.github.com     코드들FSM 구조를 사용한 플레이어 : ..
C++ 콘솔에서 Bad Apple!! 출력하기 | Default Defense # 9
·
개발/Default Defense
개요제가 콘솔창으로 게임을 만들면서 꼭 해보고 싶었던게 있습니다.바로 Bad Apple!! 출력해보기! 입니다. 유튜브에 'Bad Apple!! but' 키워드로 검색을 하면 아주 많은 미친 프로그래머들이 Bad Apple!! 뮤비를 기상천외한 방법을 사용해서 출력하는 영상을 많이 접할 수 있습니다.  그래서? 저도 해보기로 했죠.     아이디어 정리Bad Apple!!은 그 뮤비를 봤을때 전부 흑백이죠?그러니 뭔가 영상의 한 프레임을 읽어온 다음 그 해상도를 강제로 콘솔창에 맞춰 줄이고 한 픽셀씩 읽어와서 0과 1을 구분해 낼 수 있어보였죠. 그래서 그러한 방법을 시도하기 위해 C++ 콘솔에서 영상을 읽어오는 법을 찾아봤는데... 대충 찾아봤는데도 얼마나 길고 복잡하고 하드한 코딩을 요하는지 알게 되..
Default Defense | 다섯번째 프로젝트 # 8 : Wave, InGameState
·
개발/Default Defense
개요그동안 바쁜 상황에도 개발일지를 시간 잘 짬내서 적고 있었다고 생각했는데 다시 생각해보니 진짜 바쁘면 개발일지를 적지도 못해요.그래서 이미 개발이 다 끝난 프로젝트 개발일지를 적는 우스운일을 하고 있는거겠죠.사실 이때쯤 오면 회고록에 가깝긴 합니다. 그리고 블로그 카테고리를 조금 세분화 했습니다.큰 카테고리를 세분화 한건 아니구요 개발 카테고리 내의 카테고리를 세분화 했습니다.각각의 프로젝트마다 소개글을 하나씩은 쓸텐데 솔직히 카테고리를 각 프로젝트 단위로 나누는게 맞다고 생각했습니다. 그 외는... 아마 폐기한 프로젝트들의 개발일지가 비공개로 들어가 있을겁니다.     Wave아이디어 정리디펜스 게임, 그것도 타워 디펜스다보니까 적들이 몰려오는 웨이브라는 개념이 필요하겠죠.최소한 50웨이브 정돈 있..