다양한 글들/Win32 API

15_Event and Vector

smile blog 2022. 11. 17. 17:17
플레이어의 잔상을 없애주고 미사일의 방향을 조절해준다 (Event and Vector)

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
 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

 


기타

애니메이션 반전 

API에서는 불가능, directx 2d는 가능

 

이미지 회전(PlgBlt) 함수

프레임 너무 잡아먹으니까 이미지 따로 가져와서 할 것

 

삼각함수를 이용해서 이미지들을 회전 (어려움)

==> 벡터를 이용한 회전 (쉬움)

 

회전을 넣어줄 때는 벡터를 사용한다!

		// 삼각함수를 이용한 회전
		mDir = PI / 2.0f;
		pos.x += speed * cosf(mDir) * Time::DeltaTime();
		pos.y -= speed * sinf(mDir) * Time::DeltaTime();
		

		// 벡터를 이용한 회전
		pos.y += mDir.y * speed * Time::DeltaTime();
		pos.x += mDir.x * speed * Time::DeltaTime();

 

yaPlayer.cpp에서 미사일의 방향을 바꿔줄 수 있다.

missile->mDir = Vector2(mCoff, -1.0f + mCoff);                                                    
			mCoff -= 0.1f; // mCoff = mCoff - 0.1f
            
// 미사일의 방향을 바꿔주는 벡터함수

용어정리

라디안각도 

- 1 라디안은 = 호가 r인 도형의 각도

- 반지름이 r인 원의 각도는 = 2ㅠ 라디안

https://blog.naver.com/PostView.nhn?blogId=saomath&logNo=221979375013 

 

삼각함수 호도법, 1라디안이 뭐지??

삼각함수 호도법, 1라디안이 뭐지?? 삼각함수 호도법을 배운 학생들도, 1라디안이 뭐냐고 물어보면 선뜻 대...

blog.naver.com