몬스터를 띄어주고 ColliderManager
Engine
Common
Common.h (펜이랑 브러쉬 객체화 구조체로)
def.h
Maths.cpp
Maths.h
yaEntity.cpp
yaEntity.h
Component
Base (기초가 됨)
yaComponent.cpp
yaComponent.h
yaAnimatior.cpp
yaAnimatior.h
yaCollider.cpp
yaColider.h
GameObject
Base (기초가 됨)
yaGameObject.cpp
yaGameObject.h
yaBgimageObject.cpp
yaBgimageObject.h
yaMissile.cpp
yaMissile.h
yaMonster.cpp
yaMonster.h ==> 이동 방향 빼고는 플레이어랑 코드가 비슷하다
yaPlayer.cpp
yaPlayer.h
High Level Interface
yaApplication.cpp (더블버퍼링 효과 만들기)
yaApplication.h
Manager
yaCollisionManager.cpp
yaCollisionManager.h ==> 충돌을 관리해주는 매니저
yaInput.cpp
yaInput.h ==> 키보드에서 키를 눌렀을 때 호출되는 파일들
yaResources.cpp
yaResources.h ==> 리소스들을 관리하는 파일들
yaSceneManager.cpp
yaSceneManager.h ==> 모든 씬들을 관리해주는 매니저
yaTime.cpp
yaTime.h ==> deltatime 설정
Resource
Base
yaResource.cpp
yaResource.h
yaImage.cpp
yaImage.h
Scene
Base ( 기초가 됨 )
yaScene.cpp
yaScene.h
yaEndScene.cpp
yaEdScene.h
yaLogoScene.cpp
yaLogoScene.h
yaPlayScene.cpp
yaPlayScene.h
yaTitleScene.cpp
yaTitleScene.h
main
framework.h
main.cpp
Resource.h
targetver.h
WindowsAPI.h
기타
<강의 9>
이미지들을 24비트짜리 비트맵을 사용중인데 32비트 짜리 비트맵으로 바꿔주어야 함
==> transblit이라는 함수가 32비트에 최적화 되어있기 때문이다.
for문 auto 사용
for (auto i : arr)
{
cout << i << " ";
}
// == (위 아래 코드 같은 의미이다)
for (i = 0; i < 6; i++)
{
cout << arr[i] << " ";
}
collider
= 충돌기
layer
= 층 ( 여기서는 오브젝트들을 의미 (ex) 플레이어, 몬스터, 미사일 )
#pragma once
#include "Common.h"
namespace ya
{
class Collider;
class Scene;
class CollisionManager
{
public:
static void Tick();
// 충돌 업데이트
static void SetLayer(eColliderLayer left, eColliderLayer right, bool value);
// 오브젝트들을 세팅 해준다
static void LayerCollision(Scene* scene, eColliderLayer left, eColliderLayer right);
// 오브젝트들의 충돌처리 함수
static void ColliderCollision(Collider* left, Collider* right);
// 충돌기의 충돌처리 함수
static bool Intersect(Collider* left, Collider* right);
// 네모나 동그라미가 겹치는지 확인해주는 함수
private:
static WORD mMatrix[_COLLIDER_LAYER];
static std::map<UINT64, bool> mCollisionInformation;
// 충돌정보
};
}
row = 행 = 가로줄
col = 열 = 세로줄
사각형 충돌처리
왼쪽 네모의 중간 x 와 오른쪽 네모의 중간 x의 길이차이가
왼쪽 네모 크기의 반과 오른쪽 네모 크기의 반을 더한 값보다 작아야 한다.
기타
<강의 10>
플레이어와 몬스터 충돌 처리를 할 때
플레이어가 몬스터를 충돌 처리 할 수 있게 하고
반대로 몬스터가 플레이어를 충돌 처리 할 수 있게 하면 자유롭게 게임을 만들기 좋다
용어정리
1 바이트 = 8 비트
비트 연산자
연산자 | 연산자의 기능 |
& | 비트단위로 AND 연산을 한다. |
| | 비트단위로 OR 연산을 한다. |
^ | 비트단위로 XOR 연산을 한다. |
~ | 단항 연산자로서 피연자의 모든 비트를 반전시킨다. |
<< | 피연산자의 비트 열을 왼쪽으로 이동시킨다. |
>> | 피연산자의 비트 열을 오른쪽으로 이동시킨다. |
'Win32 API > 강의들 ft. Assortrock' 카테고리의 다른 글
12_FadeInOut and ObjectDestroy (0) | 2022.11.17 |
---|---|
11_ Camera and Alphablend (0) | 2022.11.17 |
08_BG and Collider (1) | 2022.11.17 |
07_TransparentBlt,Component (0) | 2022.11.17 |
06_Resources (0) | 2022.11.17 |