목록공부 (292)
응애맘마조
창 크기의 끝으로 가면 반대로 튕겨나오는 미사일을 만들었습니다. 이전과 달라진 부분은 중력을 없애고 반사하는 것만 추가했습니다. 달라진 부분은 LateUpdate() 안의 if문입니다. 나아가는 방향의 역행렬을 곱하면 되는 문제였습니다. //bullet.cpp #include "stdafx.h" Bullet::Bullet() { missile.SetLocalPos(Vector2(2000.0f, 2000.0f)); missile.scale.x = 30.0f; missile.rotation = 0.0f; missile.isVisible = false; missilePet.SetParentRT(missile); missilePet.SetLocalPos(Vector2(50.0f, 50.0f)); missileP..
※현재 프로그램에서는 해상도를 1400×800을 사용하고 있습니다. 어제 과제에 대해 풀이 내용 말고는 크게 없었습니다. 먼저 마우스 좌표가 스크린상 좌표 값과 월드 좌표 값이 다릅니다. 그래서 스크린 좌표를 월드 좌표로 변환해야 됩니다. x는 해상도의 절반인 700을 빼줘야 월드 좌표로 바뀝니다. y는 API상과 DirectX상 증가하는 방향이 다르기 때문에 y값인 800에서 먼저 빼서 증가량을 바꿔줘야 합니다. 그 후에 절반 값인 400을 빼서 계산을 합니다. 카메라 이동에 대해선 아직 배우지는 않았습니다. 강의에서는 카메라 이동값까지 계산해주는 것이 Screen To World라고 합니다. (이것이 완전한 공식이라고 했습니다.) 로테이션에 θ값을 넣어서 단위벡터를 먼저 만듭니다. 마우스 포지션 값에..
마우스 커서에 따라서 움직이고 포물선으로 미사일을 발사할 수 있도록 만들었습니다. 마우스 클릭으로 미사일을 발사합니다. 실행 영상입니다. //bullet.h #pragma once class Bullet { public: ObLinemissile; ObCirclemissilePet; Vector2fireDir; floatscalar; floatgravity; public: Bullet(); void Update(ObRect player); void Render(); bool Shoot(Vector2 fireDir, float scalar, Vector2 firePos); }; //bullet.cpp #include "stdafx.h" Bullet::Bullet() { missile.SetLocalPos(..
이번엔 중력의 영향을 받아 포물선을 그리는 식으로 미사일 발사를 만들었습니다. 실행 영상입니다. //bullet.h #pragma once class Bullet { public: ObLinemissile; ObCirclemissilePet; Vector2fireDir; floatscalar; floatgravity; public: Bullet(); void Update(ObRect player); void Render(); bool Shoot(Vector2 fireDir, float scalar, Vector2 firePos); }; //bullet.cpp #include "stdafx.h" Bullet::Bullet() { missile.SetLocalPos(Vector2(2000.0f, 2000.0..
아마도 이번주까지는 수업이 조금 짧을 것 같습니다. 전에도 말했듯이 DirectX 들어가기 전 게임 기능 알아보기 위해 배우고 있는 기간이라 블로그 정리도 짧았습니다. 오늘 강의에서는 마우스 좌표를 얻어오는 방법에 대해 배웠습니다. Windows.cpp에 마우스 입력이 추가 되었습니다. Framework에 Input 안에 추가를 해서 받아오는 식으로 했습니다. Windows.cpp 파일 안에 WM_MOUSEMOVE가 추가 되었습니다. (message == WM_MOUSEMOVE)를 썼는데 마우스가 움직일 때마다 메시지를 보내는 코드를 썼습니다. 실제 작성 후 콘솔 창으로 출력을 하면 마우스 좌표가 나타납니다. 실제로 게임을 만들 때 마우스로 상호작용 하는 부분이 꽤나 많습니다. 이런 경우에는 객체와 상호..