[WinApi] 20240214

라멘커비·2024년 2월 14일
0

WinApi

목록 보기
14/32

수업 낙서

  • 모든 힘의 합이 내가 움직일 위치.

  • 나의 반지름 + 상대의 반지름 > 거리 => 둘은 원충돌 했다.

  • Collision level에서 관리, Renderer랑 비슷한 구조.
    액터에 Collisions, CreateCollision
    SetOrder하면서 리스트에 저장됨?
    Collision 함수

  • Dynamic_cast
    부모와 자식관계에 있어서 추상화(virtual)가 성립했을 때 캐스팅을 해주는 문법이다. 가상함수 테이블을 기반으로 형변환을 하기 때문이다. 이걸 쓰면 좋은 점 : 상속받은 클래스인지 아닌지를 알 수 있다.

    • 클래스 A 주소 304일 때 클래스 A의 멤버변수 Value 주소 312 -> 8바이트만큼 가상함수 테이블이 있음. dynamic_cast에서는 그 가상함수 테이블로 알 수 있는 것.
    • 상속받지 않았다면 NULL로 들어감.
    • 가상함수를 사용해야하는 불합리함이 있지만 사실 상속관계에서 virtual 많이 써서 ㄱㅊ.

할 일

  • 렌더러, 카메라 이해 다시해보기

  • 게임에서 걷기, 달리기 가속도 아주 조금 있는 것 같음

  • 경사 이게 맞음?

    • 언덕 40픽셀짜리 걍 올라버리네
      -> 내 발바닥이 마젠타색이면 Up시키는 걸로 바꿔서 해결, 언덕맵 매끄럽게 올라감
      void APlayer::HillMove(float _DeltaTime)
      {
      	while (true)
      	{
      		Color8Bit Color = UContentsHelper::ColMapImage->GetColor(GetActorLocation().iX(), GetActorLocation().iY(), Color8Bit::MagentaA);
      		if (Color == Color8Bit(255, 0, 255, 0))
      		{
      			AddActorLocation(FVector::Up);
      		}
      		else
      		{
      			break;
      		}
      	}
      }
  • 그게 문제가 아님. 가속도 넣다가 움직이는 함수 다 꼬였음.
    Move, Run, Slide 다 이동하는 부분은 MoveUpdate함수 사용중인데 MoveUpdate 내용이랑 구조 바꾸다가 다같이 이상해짐. 가속도 이상현상 해결하고 움직임종류마다 분리도 해야 함...

    • -> 이상현상 1(방향 바꿀 때 이상한 반동있음)은 남은 가속도를 다음 움직임에 사용해서 그런 것 -> Idle에서 MoveUpdate 안 해서 가속도 남은 거임.
    • 이상현상 2 : 아 그냥 다이상하네
    • CalMoveVector는 Move에만 맞게 돼 있어서 Run, Slide 다 고장났음 => CalRunVector, CalSlideVector 다 따로 만들어야함 -> 하나로 통합해서 어캐 잘 분류해주는 함수로 해보자....
  • 맵 애니메이션 02이미지 흐릿함

profile
일단 시작해보자

0개의 댓글