본문 바로가기

전체 글30

AlphaBlend() , TransparentBlt() # WinApi 에서 이미지를 화면에 랜더할때 사용하는 함수 # AlphaBlend() - 비트맵의 투명도를 조절할 때 사용한다 https://docs.microsoft.com/en-us/windows/win32/api/wingdi/ns-wingdi-blendfunction BLENDFUNCTION (wingdi.h) - Win32 apps The BLENDFUNCTION structure controls blending by specifying the blending functions for source and destination bitmaps. docs.microsoft.com # TransparentBlt() - 텍스쳐에서 원치 않는 컬러를 제외하고 화면에 출력해야할 때 사용 https://doc.. 2021. 8. 16.
WinApi 포트폴리오 기획 1. 별의 커비 https://youtu.be/9hq5jV3CA3Y 캐릭터 특징 - 커비는 어떤 아이템을 먹냐에 따라 속성(텍스쳐)이 바뀜 - 공기를 들이 마시면 날수있음 - 달리기, 공격, 슬라이드, 날아다니기 2. 커비 캐릭터 리소스 3. UI 리소스 4. Sound 리소스 https://www.youtube.com/watch?v=1RGWjGc4Is0 브금 https://www.youtube.com/watch?v=9HrDOvtwyJE 효과음 5. 맵 구성 6. 몬스터 2021. 8. 5.
Key Manager Class 설계 1. KeyManager - KeyManager의 경우 현재 입력된 키 값을 받아 두었다가 중간에 입력이 변하더라도, 한 프레임동안 변경없이 적용 될 수 있도록 제어하는 역할을 한다. - 키의 입력상태에 따라 tap, hold, away 등 으로 분류하여 키 입력에 대한 정보가 필요한 클래스에 전달한다. 2021. 8. 4.
Time Manager Class 설계 프로그램을 구성할때는 특정한 기능을 담당해주는 클래스를 제작한다. 이때 반드시 필요한 기능이 만들어진 각각의 클래스(오브젝트) 마다 해당 클래스를 관리해주는 매니저이다. 매니저들은 각 오브젝트의 상태를 가져와 다른 오브젝트에게 공유하기도 하고, 오브젝트를 통제하기도한다. 또한 , TimeManager 나 PathManager 처럼 특별한 기능을 담당하는 매니저도 존재한다. 1. TimeManager - 하드웨어에 성능에 상관없이 유저들에게 같은 사용감을 주기위해서는 모든 기능에서 시간 동기화가 필요하다. - FPS ( Frames Per Second ) : 초당 보여지는 화면의 수, fps 가 높을수록 재현이 부드러워짐 - DeltaTime : 한 프레임이 실행되는데 걸리는 시간 => deltatime의.. 2021. 8. 1.
Static 변수, 함수 # Static 이란? - static 키워드를 이용한 변수와 함수는 프로그램 실행중에 딱 한번만 할당되고 종료될때 해제 되는 것을 의미 - Static 영역에 생성 되어 객체를 생성하지 않아도 호출가능 # Static 함수 - 정적 멤버 함수, 객체없이 호출 가능 - 일반적으로 객체없이 호출할경우 어떤 문제? 멤버에 접근이 안돼( 왜? this가 없어 ) => but 정적 멤버 접근 가능 ( static 키워드가 붙은 멤버 ) # Static 변수 ( 데이터 영역 ) 1. 함수 안에 선언 될때 : 해당 함수에서만 접근 가능 2. 클래스 안에 선언 : 해당 클래스에서만 접근 가능 3. 파일 안에 선언 : 해당 파일에서만 접근 가능 => 초기화가 처음에 한번만 발생하고 콕 박혀있음 - Static 멤버 변.. 2021. 7. 29.
Singleton 패턴 #싱글톤 패턴(Single Pattern)이란? - 코드가 실행될 때 어떤 클래스를 최초 한번만 메모리를 할당하고(Static) , 인스턴스를 만들어서 사용하는 방식 - 생성자 / 소멸자를 private으로 숨기고 GetInstance() 함수 만들어 활용 #장점? - 최초 한번만 생성되기 때문에 메모리 낭비 방지 - 전역 인스턴스로 다른 클래스에서 데이터 공유 쉬움 (각종 Manager들은 singleton 으로 만드는 이유) #단점? - 하나의 인스턴스가 많은 데이터나 기능을 담당할 경우 결합도가 높아짐 (모듈화 어려움) #예시 2021. 7. 29.