본문 바로가기

전체 글

(19)
2) 모두의 코드 c++ "N차원 배열 만들기 문제"의 다른 풀이: 1차원 배열로 해결 - 이동 연산 추가 https://reonji.tistory.com/33 모두의 코드 c++ "N차원 배열 만들기 문제"의 다른 풀이: 1차원 배열로 해결댓글과 공감클릭은 더 좋은글을 위한 큰 힘이 되니 댓글과 공감클릭 부탁드립니다!! 모두의 코드로 c++을 공부하다가 기억에 남는 문제가 있어서, 그 풀이(해당 강의에 나와있는 풀이와 다른 풀reonji.tistory.com위 글에서 이어집니다. 위 글의 코드도 잘 작동은 한다.하지만, 이 코드에 이동생성자와 이동대입연산자를 추가할 여지가 보였다.그것은 다음과 같다. 복사생성자, 대입연산자 모두 is_temp == true인지에 따라 코드를 분기한다.그런데 is_temp == true인 객체는 무조건 우측값이다.따라서, 굳이 is_temp == true로 코드를 분기하기보다..
포폴 정리 1. FPS+VR 레이싱 게임(유니티) 1) VR로 하는 레이싱 + fps 게임: 유니티로 구현게임 설명:- 기본 규칙은 일반적인 레이싱 게임과 동일.- 공격 아이템들(권총, 머신건, RPG)로 상대 차량을 공격해 폭발시킬 수 있음- 상대 차량들(AI)도 나에게 공격을 함- 게임 종료 규칙: all kill(상대 차량을 모두 폭파), 또는 완주 플레이 영상들:데모 영상 1: ALL KILL데모 영상 2: 완주※ 원래 VR로 조작해야, 조작하는 모션이 자유로운데, PC로 조작해서 모션이 부자연스럽습니다ㅠ 개발 기간: 약 4개월 맡은 역할: 팀장 및 개발 총괄 팀원: 7명 -> 5명(2명은 개인 사정으로 중간 탈퇴) 제가 직접 구현한 것들:- 차량 시스템(챠량 유료에셋의 기본 차량 조작 코드를 해당 게임에 맞춰 수정 및 기능 추가): 차량 hp,..
1) 모두의 코드 c++ "N차원 배열 만들기 문제"의 다른 풀이: 1차원 배열로 해결 댓글과 공감클릭은 더 좋은글을 위한 큰 힘이 되니 댓글과 공감클릭 부탁드립니다!! 모두의 코드로 c++을 공부하다가 기억에 남는 문제가 있어서, 그 풀이(해당 강의에 나와있는 풀이와 다른 풀이)를 공유하려고 한다.아래는 그 문제가 나와있는 원본 글 링크.https://modoocode.com/203" data-og-description="모두의 코드 씹어먹는 C++ - 작성일 : 2013-08-29 이 글은 48924 번 읽혔습니다. 이번 강좌에서는멤버 함수가 아닌 연산자 함수 오버로딩입출력 " data-og-host="modoocode.com" data-og-source-url="https://modoocode.com/203" data-og-url="https://modoocode.com/203" d..
생성자 초기화 리스트를 써야 하는 좀 더 정확한 이유: 어셈블리 코드로 설명 *요약 보고 싶은 분은 맨 아래로 가세요. 생성자 초기화 리스트에 대해서, 막연히 알고 있던 써야 하는 이유는 다음과 같았다.1. 개체 생성과 동시에 멤버 변수들 초기화를 해서 더 빠르다.2. const, 참조자는 무조건 생성과 동시에 초기화를 해야 하므로, 무조건 써야 함. 위 1번 이유에 대해서는 정확히 이해하지 못했다.하이레벨 코드(c++)에서 생성과 동시에 초기화를 하든 말든, 어셈블리 코드에서는 결국 똑같은 코드가 되지 않나?int x = 3;을 하든 int x; x= 3;을 하든, 스택 영역을 먼저 할당받고, 거기에 그냥 값을 넣는 어셈블리 코드가 될 테니 말이다. 그래서, 직접 디스어셈블리로 확인해보기로 했다.하지만, 실제 디스어셈블리를 확인해보니, 내 위 의문 그대로, 초기화 리스트를 썼을..
Fresnel 효과 구현하기: Schlick approximation 이용 댓글과 공감클릭은 더 좋은 글을 위한 큰 힘이 되니 댓글과 공감클릭 부탁드립니다!! 목차구현 계기적용 과정적용 결과 1. 구현 계기홍정모 그래픽스 파트 1 강의를 다 듣고, 강의에서 제안해준 더 해볼 것들로 Fresnel 효과가 있어서 구현을 해보았다. Fresnel효과는 간단히 말해서 우리의 시야각과 물체의 표면 사이의 각도에 따라, 투명한 물체에 대한 빛의 굴절과 반사 비율이 달라지는 것을 말한다. 그 각도가 커지면 굴절이 더 잘 일어나게 되고, 작아지면 반사가 더 잘 일어나게 된다. 예를 들어, 위 사진처럼, 우리가 물을 바라봤을 때, 가까이 있는 물은 물속이 더 잘 보이고, 멀리 있는 물은 물에 반사되는 물체가 더 잘 보인다. 이는, 가까이 있는 물일수록 그 각도가 크고, 멀리 있는 물일수록 그 ..
C에서 배열의 이름은 단순 주소값이 아니다. 배열에서 배열의 이름은 포인터 상수(주소값)도 아니고, 그냥 그 배열을 대표하는 특수한 상수라고 보면 됨.-그래서 sizeof(arr)을 쓰면 포인터의 크기가 아니라 배열 전체 크기가 나옴.-다만, 이 외의 그 값을 출력 및 대입 시에 암묵적으로 배열의 첫번째 값의 주소를 나타내는 포인터 상수로써 형변환되서 쓰이는 것.-그리고, 배열원소 접근할 때도 일반 포인터 변수와 다름(배열원소 접근을 위한 추가연산을 지원): *(arr+i) 이런 식으로 하면 +i가 +배열 원소 크기*i가 되게 함.(물론 int *parr = arr 하고, *(parr+i)로 해도 결과는 같아짐. 하지만, 이는 arr이 배열원소크기 곱하는 것처럼, 일반 포인터 변수는 int 크기만큼 곱하므로 같아지는 거임. 두개가 같은 것이기 때문..
레이싱 게임 트랙포인트(체크포인트) 설치 자동화(코너 자동 판단) 댓글과 공감클릭은 더 좋은글을 위한 큰 힘이 되니 댓글과 공감클릭 부탁드립니다!!  레이싱 게임 실시간 순위 계산 로직 만들기댓글과 공감클릭은 더 좋은 글을 위한 큰 힘이 되니 댓글과 공감클릭 부탁드립니다!! 레이싱 게임을 팀 프로젝트로 개발하고 있었는데, 팀원 중 한 분이 차량 간의 실시간 순위를 계산하는 로reonji.tistory.com트랙포인트가 뭔지 궁금하신 분은 위 글을 참조하세요.그냥 코너 자동 판단 로직만 알고 싶으시면 굳이 위 글은 안 읽으셔도 됩니다. 실시간 순위 계산을 위해 트랙포인트를 코너마다 일일이 수동으로 설치해야 하는데, 너무 노가다다...그래서, 이 트랙포인트의 생성과 설치를 자동화하기로 했다. 일단, 구현해야 하는 요구사항은 다음과 같다.1. 코너 자동 판단2. 그곳에 트랙..
레이싱 게임 실시간 순위 계산 로직 만들기 댓글과 공감클릭은 더 좋은 글을 위한 큰 힘이 되니 댓글과 공감클릭 부탁드립니다!! 레이싱 게임을 팀 프로젝트로 개발하고 있었는데, 팀원 중 한 분이 차량 간의 실시간 순위를 계산하는 로직을 만들어주셨다.팀원 분이 많이 쓰이는 로직이라고 하시길래, 구글로 검색하면 바로 나오는 로직인 줄 알았다. 하지만, 구글링을 해보니 생각보다 이 실시간 순위 계산 로직에 대한 글은 잘 없었다.그래서, 그 로직을 공유하기 위해 글을 쓴다. 순위 계산 기준의 우선순위1. 현재 몇 바퀴째인지2. 몇번째 트랙포인트를 통과했는지3. 현재 통과한 트랙포인트와 차량 사이의 직선거리 위 우선순위의 각 항목들은 모두 순위를 계산하는 기준이다. 위 각 항목 중 첫 번째 항목을 기준으로 순위가 먼저 계산되고,만약 첫번째 항목을 기준으로 ..