WIN32API FrameWork/한단계씩 직접 구현

38-1. 애니메이션을 등록하는 다양한 방법들

2022. 5. 28. 19:03

http://hyrule.tistory.com/111 

 

*** 공부 방법 ***

1. 코딩을 해야 하는 부분은 첫 부분에 변수나 함수, 메소드에 대한 선언이 코드블럭으로 표시되어 있다. //ex) MakeFunction(); 2. 코드블럭 하단에는 해당 선언에 대한 구현 로직이 작성되어 있다. 처

hyrule.tistory.com

 


* 가장 먼저, 애니메이션을 사용할 CGameObject에서는 애니메이션을 동적할당해주는 메소드를 호출해주어야 한다.

	//애니메이션 파일을 동적 할당
	CreateAnimation();

 

- 직접 이미지 파일 주소를 입력하여 애니메이션을 생성한다. 비효율적이므로 사용하지 않는 것이 좋다.


	//1-1. Frame 등록 -> 배열을 직접 만들어서 등록하는 방법
	//파일 이름을 넣어둘 배열
	std::vector<std::wstring> FileName;

	//파일 이름을 만들어낸다.
	for (int i = 0; i < 11; ++i)
	{
		wchar_t Name[64];
		swprintf_s(Name, L"Mouse/%d.bmp", i);

		FileName.push_back(Name);
	}

	//이름을 정하고 파일 이름이 들어있는 배열을 전달한다.
	m_OwnerScene->GetSceneResource()->CreateAnimationSequence("Cursor", "Cursor", FileName);

	//프레임 형식의 애니메이션일 경우 AddAnimationFrameFrame 메소드를 통해 각 프레임 정보를 등록한다.
	m_OwnerScene->GetSceneResource()->AddAnimationFrameFrame("Cursor");


	//컬러키를 지정해준다.(이름만 넣으면 기본값인 true(사용) + 마젠타 색상으로 등록된다.
	m_OwnerScene->GetSceneResource()->SetColorKey("Cursor");

	//만든 애니메이션을 CGameObject의 m_Animation에 사용 등록한다.
	AddAnimation("Cursor", "Cursor");

 

 

- 폴더 주소와, 해당 폴더 안의 프레임 갯수를 입력하면 자동으로 등록하는 방식이다.

- 이 방식은 파일명이 0부터 차례대로 정렬되어있지 않으면 에러가 발생한다.

	//1-2. Frame 등록: LoadTextureByTextureNumbers 메소드를 통해 텍스처를 등록 후 애니메이션 사용
	//해당 메소드는 이미지의 번호가 차례대로 0부터 시작해야 한다. 아니면 에러 남

	m_OwnerScene->GetSceneResource()->LoadTextureByTextureNumbers("WalkRight", TEXT("WalkRight/"), 9);

	//이름을 정하고 파일 이름이 들어있는 배열을 전달한다.
	m_OwnerScene->GetSceneResource()->CreateAnimationSequence("WalkRight", "WalkRight");

	//프레임 형식의 애니메이션일 경우 AddAnimationFrameFrame 메소드를 통해 각 프레임 정보를 등록한다.
	m_OwnerScene->GetSceneResource()->AddAnimationFrameFrame("WalkRight");


	//컬러키를 지정해준다.(이름만 넣으면 기본값인 true(사용) + 마젠타 색상으로 등록된다.
	m_OwnerScene->GetSceneResource()->SetColorKey("WalkRight");

	//만든 애니메이션을 CGameObject의 m_Animation에 사용 등록한다.
	AddAnimation("WalkRight", "WalkRight");

 

 

 

- Sprite 등록 방식이다.

- for문 또는 수동으로 프레임 별로 스프라이트에서 표시될 위치를 지정해 주어야 한다.

	//2. Sprite 등록
	m_OwnerScene->GetSceneResource()->CreateAnimationSequence("PlayerRun", "PlayerRun", TEXT("Running.bmp"));

	float x = 292 / 9;
	float y = 41;
	for (int i = 0; i < 9; ++i)
	{
		m_OwnerScene->GetSceneResource()->AddAnimationSpriteFrame("PlayerRun", x * i, 0.f, x, y);
	}
	m_OwnerScene->GetSceneResource()->SetColorKey("PlayerRun");

	//애니메이션 설정
	AddAnimation("PlayerRun", "PlayerRun");
	//////////////////////////////////////////////////////////////////////////////////////

 

저작자표시 (새창열림)

'WIN32API FrameWork > 한단계씩 직접 구현' 카테고리의 다른 글

40. Y Sort Rendering  (0) 2022.05.28
39. 배경화면 생성 및 플레이어 이동  (0) 2022.05.28
38. 애니메이션 시퀀스 2(완료)  (0) 2022.05.26
37. 애니메이션 시퀀스 1  (0) 2022.05.25
36. 이미지의 투명 처리  (0) 2022.05.25
'WIN32API FrameWork/한단계씩 직접 구현' 카테고리의 다른 글
  • 40. Y Sort Rendering
  • 39. 배경화면 생성 및 플레이어 이동
  • 38. 애니메이션 시퀀스 2(완료)
  • 37. 애니메이션 시퀀스 1
hyrule
hyrule
hyrule
C++ 프로그래밍 공부
hyrule
전체
오늘
어제
  • 분류 전체보기 (205)
    • C++기초 (50)
    • WIN32API FrameWork (109)
      • 한단계씩 직접 구현 (82)
      • 원본 (15)
      • 코드별 설명 개별저장(검색용) (12)
    • 자습 (21)
    • C++ TIPS (11)
    • 연습 노트 (3)
    • ETC (6)
    • DX2D StarCraft 모작 (1)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • Windows 11
  • hello
  • notion
  • C++
  • 스타크래프트
  • Tistory

최근 댓글

최근 글

hELLO · Designed By 정상우.
hyrule
38-1. 애니메이션을 등록하는 다양한 방법들
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.