본문 바로가기

게임 개발/게임 이론+수학4

[게임수학 | 유니티] 16진수와 비트 연산의 활용 public enum UIState { None = 0x0000, // 0000 0000 0000 TopUI = 0x0001, // 0000 0000 0001 TopDeco = 0x0002, // 0000 0000 0010 ShipUI = 0x0004, // 0000 0000 0100 HideMailNHeart = 0x0008, // 0000 0000 1000 BottomUI = 0x0010, // 0000 0001 0000 EventUI = 0x0020, // 0000 0010 0000 TopFilter = 0x000f, // 0000 0000 1111 BottomFilter = 0x00f0, // 0000 1111 0000 BlueHeart = 0x0100, // 0001 0000 0000 TopNB.. 2019. 9. 5.
[게임수학 | 유니티] 게임에서의 충돌처리 로직 ※출처: http://m.blog.naver.com/winterwolfs/10165506488 1. 원 - 원 충돌 [조건1] 중점 사이의 거리가 반지름의 합보다 작거나 같으면 충돌float dist = sqrt(pow(point1.x - point2.x, 2) + pow(point1.y - point2.y, 2)); if (dist = rect2.origin.y - rect2.size.height && rect1.origin.y - rect1.size.height 2017. 5. 31.
[게임수학 | 유니티] 벡터의 내적을 이용한 시야각 구현하기 1. 벡터의 내적이란? 두 벡터의 내적은 아래 공식으로 표현된다. a벡터와 b벡터의 크기를 각각 곱한 다음 사이각의 cosθ 값을 곱한다.벡터와 벡터의 내적의 결과는 벡터가 아닌 스칼라 값임에 주의한다. 자기 자신과 내적하면 제곱이다. cosθ 값이 자기 자신이기 때문에 1이 된다. 결과적으로 같은 벡터 2개를 내적하면 제곱이 된다. 두 단위벡터가 평행하면 절대값 1이다. 벡터 두개가 평행하는 경우는 같은 방향으로 향하거나, 반대 방향으로 향하는 것이다. 따라서 cosθ 값이 1 혹은 -1 이다. 절대값을 취하면 1이된다. 두 벡터가 직교하는 경우 값이 0이 된다.cos90˚는 0이 되기 때문에 내적값 또한 0이된다. 2. 유니티에서 벡터의 내적을 이용한 시야각 구현하기 플레이어의 시야각을 θ라고 하면,.. 2017. 5. 29.
[게임수학 | 유니티] 캐릭터 점프 구현하기 캐릭터의 점프 시 속도와 시간의 상관관계 캐릭터가 점프하면 빠른 속도로 높이가 상승하지만 시간이 지나면서 중력가속도에 의해 점점 그 속도가 감소한다. 결국 음수값이 되고 그 값은 캐릭터가 바닥에 착지할 때까지 점점 더 음수의 값으로 증가한다. 이 물리법칙을 1차함수로 정리하면 다음과 같다. y= -ax + b (a: 중력가속도 b: 초기 점프속도. x: 점프시간, y: 점프속도) 우리가 궁극적으로 알아야 할 것은 점프하는 동안의 캐릭터의 높이이다. 그렇다면 높이는 어떻게 구할 수 있을까? 높이는 위의 1차함수에서 빗금으로 표시된 영역의 시간당 누적값으로 표시된다. 왜냐하면 속도x시간=거리이고 여기서 높이는 거리와 같기 때문이다. 1차함수를 적분하여 2차함수로 만들면 y = (-a/2)*x*x + b*x이.. 2017. 3. 22.