728x90

Windows API 6

리스타 구현 스윙 구현

3.4: Pendulum Simulation - The Nature of Code - YouTube 이해 하려고 했지만, 결국 리스타 스윙(진자운동)을 구현 할 때에는 리스타가 잡은 Target 값의 x축보다 작으면 속도를 +로 누적해주고 리스타가 잡은 Target 값의 x축보다 크면 속도를 -로 누적해주는 방식을 사용 하였다. 이때 스윙을 좀 더 크게 하는 방식은 그네 타는 것을 생각하여 속도값이 0에 가까워질때 (약0.5f? 정도이하) 속도값을 더해주는 방식을 채택하였다.

Windows API 2021.06.18

#라인타기

횡스크롤 게임에서는 라인을 따라서 움직여야하고 위쪽 라인으로 점프를 하게 되면 위쪽라인을 타다가 다시 라인이 끝나면 자연스럽게 아래라인으로 착지해야한다. 플레이어의 x좌표가 라인의 왼쪽점과 오른쪽점 사이에 있고, (라인의 y좌표 - 플레이어의 y좌표) >0 일 경우, 라인을 태우면된다. 이때, 라인은 여러개 있고, 라인마다 각각 플레이어의 좌표와 비교를 해주어야 하며, 같은 x범위를 만족한다고 하여도, y축 좌표가 플레이어와 거리가 짧은 순으로 우선해야한다. 따라서 모든 라인과 플레이어를 비교해보고 (라인의 y좌표 - 플레이어의 y좌표) >0 인 경우에 한하여 그 값이 가장 작은것을 찾아 플레이어에게 y좌표를 넘겨주어야 한다. 그 코드를 다음과 같이 구성해보았다. if (m_listLine.empty()..

Windows API 2021.06.11

#몬스터 추적 (feat. 유도탄)

#몬스터가 플레이어를 추적 몬스터가 플레이어를 추적하려면 acosf값을 써야한다. acosf값을 사용하여 플레이어의 좌표와 몬스터의 좌표를 구해서 x값의차/몬스터와 플레이어거리 를 구한후 acosf에 넣어주면 된다. 그럼 방향 즉, 단위벡터가 나오는데 문제는 acosf 값으로는 0~180도 까지 밖에 나타내지 못한다. 즉 180도를 넘어가는 순간부터는 -1을 곱해줘서 나타내주어야 한다. if (m_pTarget->Get_Info().fY > m_tInfo.fY) // 플레이어가 몬스터보다 아래 있을 때, m_fAngle *= -1.f; m_tInfo.fX += cosf(m_fAngle * PI / 180.f) * m_fSpeed; m_tInfo.fY -= sinf(m_fAngle * PI / 180.f)..

Windows API 2021.06.10

# 삼각함수로 방향 전환

#방향전환 삼각함수를 이용해서 플레이어가 바라보는 방향으로 이동하는 코드는 다음과 같다. if (GetAsyncKeyState(VK_UP) & 0x8000) { m_tInfo.fX += m_fSpeed* cosf(m_fAngle); m_tInfo.fY -= m_fSpeed* sinf(m_fAngle); } 이때 y좌표는 아래가 + 위쪽이 -로 반대방향이기 때문에 플레이어 좌표에서 -를 해주어야 한다. 좌우를 눌렀을 때 각도 변환을 해서 플레이어를 회전 시킬수 있다. if (GetAsyncKeyState(VK_LEFT) & 0x8000) m_fAngle += 0.1f; if (GetAsyncKeyState(VK_RIGHT) & 0x8000) m_fAngle -= 0.1f;

Windows API 2021.06.02

# 총알 4방향 발사

if (GetAsyncKeyState(VK_LEFT) & 0x8000) 를 이용하여 키보드 입력값을 받을 수 있다. 키보드 입력값은 GetAsyncKeyState(키값) 을 넣어주면된다. 키값은 List of Virtual Key Codes (kbdedit.com) List of Virtual Key Codes List of Virtual Key Codes Following is a full list of VK codes that can be assigned to physical keys ("scan codes") in the Low-level editor. The list is divided in two categories: "Mappable" codes, to which Unicode characte..

Windows API 2021.05.31