211012 모작기록-3, 맵에 사용될 Line 클래스 작업

2021. 10. 13. 00:28·포트폴리오/Castlevania: Aria of Sorrow 모작

[오늘 한 일]

<소스코드>

[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
'포트폴리오/Castlevania: Aria of Sorrow 모작' 카테고리의 다른 글
  • 211015~18 모작기록-5, 오브젝트의 계단 이동
  • 211015 모작기록-4 Line 클래스 기반 충돌체 생성
  • 211010~11 모작기록-2, 끄적끄적
  • 211003 모작기록-1, 개략적인 계획과 오프닝 영상에 관하여
DevJoo1120
DevJoo1120
  • DevJoo1120
    Jin's Programming
    DevJoo1120
  • 전체
    오늘
    어제
    • 분류 전체보기 (142)
      • 포트폴리오 (7)
        • Castlevania: Aria of Sorrow.. (7)
        • [UE5] KILL Everything (0)
      • C++ (0)
      • 라이브러리 (1)
      • 다이렉트X11 (0)
      • Unreal Engine (11)
        • Unreal Document (1)
        • 이것 저것 (8)
        • UI (1)
      • 자료구조 및 알고리즘 (0)
      • 책 정리 (3)
        • 코딩 테스트 합격자 되기 C++ 편 (10)
      • 코딩 테스트 (32)
        • 프로그래머스 (32)
      • 스파르타 코딩 언리얼 1기 (9)
        • 특강 (0)
        • C++와 Unreal Engine으로 3D .. (2)
      • TIL(Today I Learned) (63)
      • 영어 공부 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Study
    코딩 테스트 합격자 되기 c++ 편
    책 정리
    팀 프로젝트
    정렬
    코딩테스트
    map
    이중 반복문
    Unreal Engine 5
    Til
    배열
    C++
    과제
    코딩 테스트
    WINAPI
    문자열
    반복문
    스파르타 코딩 클럽
    프로그래머스
    정리
  • hELLO· Designed By정상우.v4.10.5
DevJoo1120
211012 모작기록-3, 맵에 사용될 Line 클래스 작업
상단으로

티스토리툴바