목록전체 글 (340)
응애맘마조
현재 R키를 눌러서 재장전하는 것까지는 쉽게 하기에 이제 화면 밖으로 나갔을 경우에 자동으로 장전이 되도록 하는 법을 했습니다. 그렇게 하기 위해서는 벡터의 마이너스 합연산을 사용합니다. 두 벡터간의 차이 벡터를 만들 때 사용합니다. 하지만 벡터간의 사이에서 마이너스 벡터 값은 없습니다. 만약 벡터 간의 빼기를 하고 싶을 때는 (벡터) + -(벡터) 공식으로 계산합니다. 벡터간의 빼기는 차합이라고 합니다. 방법은 기준 객체를 원점으로 맞추고 기준 객체의 좌표 벡터를 빼면 됩니다. 그 사이에 나온 값을 거리라고 하는데 distance라고 쓰고 코드상에는 dis라고 표기하였습니다. 읽어주셔서 감사합니다.
금요일에 내준 과제였는데 대전을 가느라 좀 늦었습니다. 과제 내용은 미사일 주변으로 회전하는 공을 만드는 것이 과제였습니다. 실행 영상입니다. 총 10발이고 10발 발사가 끝나면 더 이상 발사가 안됩니다. R키를 눌러서 리로드를 시켜서 다시 발사 가능하게끔 만들었습니다. #include "stdafx.h" #include "Main.h" void Main::Init() { player.SetWorldPos(Vector2(0.0f, 0.0f)); player.scale = Vector2(80.0f, 80.0f); player.rotation = 0.0f; player.isAxis = true; player.isFilled = false; player.isVisible = true; player.color ..
어제 말했던대로 오늘 DirectX를 나가기 전 Framework를 받았습니다. sln 파일을 열면 2DFrameWork가 있고 Game1, 2가 있습니다. 하지만 이대로 실행하면 오류가 납니다. 왜냐하면 시작 프로젝트가 2DFrameWork로 되어있기 때문입니다. Game1, 2로 시작 프로젝트를 해야 정상적으로 실행이 됩니다. 여기서 2DFrameWork는 정적 라이브러리(lib)파일이고 Game1, 2는 응용 프로그램(exe)파일입니다. 정적 라이브러리를 작성하고 빌드된 것을 가져가서 사용합니다. 여기서 컴파일을 할 때 한 번 했던 컴파일 된 파일은 또 다시 하지 않습니다. 수정된 코드가 있는 파일만 다시 합니다. 하지만 만약에 프레임워크를 수정하면 다시 처음부터 컴파일을 시작합니다. (프레임워크를..
행렬과 벡터를 이용해서 스페이스바를 눌러서 미사일을 발사 시키는 것이 과제였습니다. 실행 영상입니다. 총 10발이고 10발이 발사가 끝나면 더 이상 발사가 안됩니다. R키를 눌러서 리로드를 시켜서 다시 발사 가능하게끔 만들었습니다. #include "framework.h" #include "MainGame.h" MainGame::~MainGame() { } void MainGame::Init() { HBITMAP m_hOldBitmap, m_hBitmap; HDChdc = GetDC(g_hwnd); g_MemDC = CreateCompatibleDC(hdc); m_hBitmap = CreateCompatibleBitmap(hdc, 800, 600); m_hOldBitmap = (HBITMAP)Select..
행렬의 마지막으로 동차를 했습니다. 동차는 W로 표기하며 한자로는 同次라고 합니다. 차원의 차이를 나타내며 값은 0, 1로 표현합니다. SetWorldPos는 W가 1입니다. 원점에서 나오기 때문에 같은 차원이라서 1이라고 표현합니다. MoveWorldPos는 W가 0입니다. 특정 위치에서 움직이기 때문에 같은 차원이 아닙니다. 중점을 이동시켜서 구현합니다. 그렇기 때문에 정점이 이동하는 것이 아닙니다. 내일부터 DirectX 2D를 들어가기 전에 Framework 파일을 주고 들어 가기 전 게임 기능에 대해 배우고 정식으로 들어간다고 합니다. 그 전에 이제 미사일 발사 하는 기능에 대해서 한다고 했습니다. 그 이후에 정식으로 DirectX2D를 나간다고 합니다. 읽어주셔서 감사합니다.