DirectX/DirectX 2D_(구) 22

DX_Collider [3 / 3] OBB 충돌

OBB(Object Oriented Bounding Box) 의 이론과 설명 코드는 아래 사이트에서 참고 하면 되고 kwaksh2319.tistory.com/46 OBB(Object Oriented Bounding Box) Collision OBB충돌을 이해하기 위해서 조금 시간이 걸리긴 했지만 외국 사이트 내용이 생각보다 쉽지 않아서 국내 블로그를 전전하다가 굉장히 설명이 잘되있는곳을 알게 되었습니다. 링크:http://www.gingaming kwaksh2319.tistory.com 쓰는 목적은 다음과 같다 1. 실시간 그림 크기에 맞는 바인딩 박스 2. 회전하든 상관 없이 중심점과 중심점 기준으로 바인딩 박스 영역 충돌 코드 더보기 Collider.cpp 내용물 추가 //그림끼리 충돌 판정 bool..

DX_Collider [2 / 3] AABB 충돌

AABB(Axis Aligned Bounding Box) 충돌 관련해서 간단하게 애기하면 박스와 박스 끼리 충돌 하는 방법중 하나인데 간단하게 축과 축끼리 부딫치면 충돌 한다는 판정이다. 그림으로 간단하게 보면 B1, B2 박스가 각각의 위치에서 해당 위치에서 각각의 X, Y좌표가 동시에 겹쳤을때 충돌 하는 방법이다 물론 장점과 단점이 존재한다. 장점 . 간단한 계산방식으로 인한 충돌처리 단점 . 회전축 사용시 박스 관련 계산이 없으므로 박스 크기가 커질수도 작을수도 있다. 즉 간단한 충돌 처리할땐 요 방법이 좋지만 회전이 들어가면 박스가 오브젝트에 맞지않게 커질수 있어 문제가 생길수가 있다. Collider.cpp, h 수정 더보기 헤더파일 #pragma once class Collider { publ..

DX_Collider [1 / 3]

Collider.cpp는 우선 총 3단계 나눠서 진행할 예정.... 수학을 더럽게 못해서 원리 및 이해를 하고선 쓸 예정 우선 1단계는 간단하게 캐릭터 및 오브젝트에다가 박스 형태로 감싸는 선을 그려줄 예정 그림으로 간단하게 정의 하면 이런 형태 Collider.cpp 더보기 #include "stdafx.h" #include "collider.h" Collider::Collider() : bDrawColliderColor(false) { shader = new Shader(L"Bounding.fx"); CreateBuffer(); D3DXMatrixIdentity(&world); // 쉐이더 파일에 있는 변수 정의 sWorld = shader->AsMatrix("World"); sView = shade..

DX_카메라 시점변환

간단하게 키보드 입력에 따라 카메라의 시점을 바꿔주는 방법 S00_Test . cpp 더보기 #include "stdafx.h" #include "S00_Test.h" #include "Viewer/Following.h" //그림 불러오기 #include "Object/Background.h" #include "Object/Move.h" S00_Test::S01_AABB(SceneValues * values) : Scene(values) { //카메라에 대한 정보를 받아옴 camera = values; //파일경로 wstring shaderFile = L"Effect.fx"; background = new Background(shaderFile); Ply = new Move(Vector2(0.0f, 0...

DX_Move

여태 까지 Prinny 라는 클래스로 화면을 띄웟다면 이제는 상속 받아서 추가 기능들을 연습 해볼 예정으로 전 게시글에 올렸던 Keyboard 연장선 으로 생각 하면 된다. Move.cpp 더보기 #include "stdafx.h" #include "Move.h" Move::Move(Vector2 position, Vector2 scale) :Prinny(position, scale) { } Move::~Move() { } void Move::Update(Matrix& V, Matrix& P) { Vector2 position = animation->Position(); if (Key->Press('D')) { moveSpeed += 300.0f * Time::Delta(); animation->Rota..

DX_Keyboard

키보드 이벤트에 관한 내용을 class 만들어서 어디서든 키보드 이벤트에 관한 내용을 사용 할 수 있도록 만듬 Keyboard 더보기 Keyboard.cpp #include "stdafx.h" #include "Keyboard.h" Keyboard::Keyboard(){ for (int i = 0; i < KEYMAX; i++) { up.set(i, false); down.set(i, false); } } Keyboard::~Keyboard(){ } //키보드를 입력 했을때 bool Keyboard::Down(int key) { if (GetAsyncKeyState(key) & 0x8000) { if (down[key] == false) { down.set(key, true); return true; }..

DX_카메라 (고정, 자유)

Freedom : 자유 롭게 움직이면서 출력하는 용도 Following : 오브젝트에 상속해서 사용을 하면 해당 오브젝트를 따라 움직임 IFollowing.h : Following 통해서 상속받은 객체는 Focus()함수를 통해서 시야값을 넣어줘야함 Camera class : Freedom , Following class 의 카메라의 View 와 위치를 생성 하는 클래스 변경 사항 Device.cpp , h 파일은 이제 더이상 건들지 않기 때문에 System 폴더 및 필터로 변경 추가 사항 Viewer 새필터, 폴더 생성후 오로지 카메라 관련된 내용 1. Camera.cpp , h 파일 Following, Freedom의 부모 클래스 및 View 관련 내용 선언 사용 주요 목적 : 자유 카메라 였다가 고..

DX_ Clip, Animation

기존에 그린 Background , Rect class 들은 Object 파일및 , 새필터로 만들어서 그림 객체 별도 관리 Sprite : 하나씩 그림을 잘라서 보관 및 Clip에 map 값 보내줌 Clip : 여러 그림을 순서대로 관리 및 정의 하는곳 (ex 이동, 대기, 점프 모션에 필요한 그림을 따로따로 저장) Animation : Clip에 있는 내용을 시간을 줘서 움직이게 보여주는 클래스 1 : 새필터, 폴더 및 적용후 옮기기 2 : Clip.h , Clip.cpp 에다가 각각 적용 역할 : 이미지와 진행 하는 시간 값을 받는곳 3 : Clip.h 정의 및 선언 빨강색 박스 : 위에 2번 그림의 값을 받아서 Vector 형식으로 한번에 묶어서 저장할 공간 4: 생성자 및 크기, 위치, 회전 정의..

DX_Sprite

1. Scene 초기화 및 변경 2. Sprite.h 파일 3. Sprite.h 파일 Sprites 4. Sprite.cpp 생성자 5. Initialize (초기화) 6. 삭제, 출력, 카메라 크기 회전 위치 값 넘기기 7. 크기, 위치, 회전 및 회전값 구하기 -> UpdaeWorld()에 갱신 8. sprites 내용 9. Test Back 이미지용 클래스 만들기 10. Scene 11 결과 요약및 정리 2. 역할 : 모든 텍스쳐 이미지, IA, VS , Shader 파일 경로 설정 등 기능 : 1개의 텍스쳐 이미지를 만들어지는 class 객체 빨강색 박스 : 파일 이름, 세이더 파일 받아서 노랑색 박스 칸으로 자동으로 해당 값 옮겨줌 노랑색 박스 : vertexbuffer, indexBuffer ..