-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
미로 준비 - 플레이어 생성에서 2가지 질문이 있습니다.
22.05.06 01:51 작성 조회수 84
0
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
답변을 작성해보세요.
0
Rookiss
지식공유자2022.05.06
1.
예상하신대로 C#의 struct는 get; set랑 친하지가 않습니다.
기본적으로 C#에서 struct는 복사형인데,
get으로 갖고 온 다음에, 복사본에 뭘 설정해도
[어차피] 복사본에 적용되기 때문에 의미가 없기 때문이죠.
위 예제에서도 position을 한 방에 세팅해야지,
세부적으로 position.x = 10;을 한다고 해도 의미가 없는 것과 유사합니다.
실제로 유니티 작업을 하다보면 Vector3도 유사하게 z만 바꾸고 싶어도
new Vector3(x, y, z)으로 통으로 설정하곤 합니다.
그게 정말 싫다면 class로 만들건 int로 더 세분화해서
만드는 등 다양하게 우회하면 됩니다.
2.
코드 수정은 자유롭게 해보시기 바랍니다.
언제 그렇지만 프로그래밍에는 정답이 없게 늘 의심하는 습관이 필요합니다.
프레임 계산은 정확할 수가 없기에 근사값으로 처리해주면 됩니다.
실제로 롤 같은 게임을 해도 200FPS가 정확히 고정이 아니라
195~210 사이로 조금씩 왔다 갔다 하는 것과 유사합니다.
참고로 코드에 버그가 있는데
int currentTick = Environment.TickCount & Int32.MaxValue;
로 수정이 필요합니다.
(TickCount가 C#에서는 C++와 다르게 동작해서 제가 혼동했네요)
https://www.inflearn.com/questions/78754
imdev
질문자2022.05.06
명쾌한 답변 감사합니다 강사님!
쏙쏙 이해됬어요.
2번 내용도 재밌어요 ㅎㅎㅎ
왜 Int32.MaxValue를 논리곱하는지 조금 의하했는데,
범위가 더 적은 sbyte로 이것저것 값을 만지다보니,, maxValue의 부호비트는 0이기에,
항상 양수가 나올 수 밖에 없네요...
답변 감사합니다.
답변 1