[오늘 한 일]
<소스코드>
[Flag]
1. ETileEditMode에 Line 추가
[GameManager]
1. m_hVioletPen 추가
2. m_hVioletPen을 반환하는 Get함수 추가
[TileMap]
1. Line클래스를 가지는 vector 구조체 선언
2. Line vector 구조체 관련 Update, Render, PostUpdate 등 관련 로직 추가
3. 경고 생기는 부분 처리
[EditorDlg]
1. ETileEditMode와 매핑되는 텍스트 수정
[EditorScene]
1. Line 인스턴스 생성을 위한 로직 추가
// 예외처리
if (!m_TileMap)
return false;
// 마우스 위치 가져오기
Vector2 MousePos = CInput::GetInst()->GetMousePos();
// 카메라 가져오기
CCamera* Camera = GetCamera();
// 마우스 위치가 카메라가 현재 보여주는 위치를 벗어나면 그릴 필요가 없으므로 return
if (MousePos.x < 0.f || MousePos.x > Camera->GetResolution().x ||
MousePos.y < 0.f || MousePos.y > Camera->GetResolution().y)
return false;
// 마우스 위치값에 현재 카메라의 위치값을 더함
MousePos += Camera->GetPos();
// 현재 EditMode가 Line 수정모드가 아니면 작동할 필요가 없다.
ETileEditMode EditMode = m_Dlg->GetTileEditMode();
if (EditMode == ETileEditMode::Line)
{
// 마우스가 다운된 상태면 클릭이 시작된 것.
if (CInput::GetInst()->GetMouseDown())
{
// 현재 위치 기록
m_LineStart = MousePos;
}
// Push된 상태로 하여 위의 클릭 시작부터 드래그로 Line의 끝점 위치를 계속 변경
else if (CInput::GetInst()->GetMousePush())
{
// 마우스가 Push된 상태에서 클릭이 안되는 상태로 넘어가야 하므로
// 상태를 저장할 멤버변수를 사용함.
m_MouseL = E_Mpush;
// 멤버변수에 Line의 마우스가 가리키는 곳을 저장
m_LineDest = MousePos;
}
// 마우스 왼쪽 버튼의 이전상태가 Push이고 현재 마우스가 올라간 경우가 왼쪽 버튼에서
// 클릭을 뗀 것이므로 이 때 상태 초기화와 Line 생성을 하도록 한다.
else if (CInput::GetInst()->GetMouseUp() && m_MouseL == E_Mpush)
{
// 상태 초기화
m_MouseL = E_Mend;
// 너무 작은 Line을 생성하는 경우를 예외로 하고 타일맵에 Line 생성
if (Distance(m_LineStart, m_LineDest) >= 20)
{
// 시작점과 끝점을 기반으로 Line 생성
m_TileMap->CreateLine(m_LineStart, m_LineDest);
}
// 다음 Line을 위한 시작점과 끝점 초기화
m_LineStart = Vector2(0, 0);
m_LineDest = Vector2(0, 0);
}
}
2. Line 인스턴스 삭제를 위한 로직 준비
[UIWidget]
1. 복사 생성자의 레퍼런스 카운트 처리 추가
[내일 할 일]
1. Line 클래스와 캐릭터, 마우스 충돌처리를 위한 클래스 및 함수 정의
2. 캐릭터 공격 텍스쳐 및 로직 작업
3. 기본 좀비 몬스터 작업
'포트폴리오 > Castlevania: Aria of Sorrow 모작' 카테고리의 다른 글
| [내용 정리] 1. 프로젝트 개요 (0) | 2025.05.28 |
|---|---|
| 211015~18 모작기록-5, 오브젝트의 계단 이동 (2) | 2021.10.19 |
| 211015 모작기록-4 Line 클래스 기반 충돌체 생성 (0) | 2021.10.16 |
| 211010~11 모작기록-2, 끄적끄적 (0) | 2021.10.11 |
| 211003 모작기록-1, 개략적인 계획과 오프닝 영상에 관하여 (2) | 2021.10.03 |