-
메탈슬러그 중간과정 6 - backgroundCode/Winapi 2020. 7. 17. 00:56
* RendManager 와 DBManager 을 합쳐서 기반을 조금 더 단순화 시킨다. - 부피가 조금 더 큰 Manager 를 기반으로 다른 Manager를 함수부터 하나씩 옮긴다. - 메소드 분해의 이유 : 이후에 위와 같이 합치기 쉽도록. * 총알 vector 수정. - Run 함수와 Rend 함수를 ObjManager 로 합쳐줌. - m_DBobjiter++ 가 앞에 있으므로서 데이터가 있는 첫번째 iter (.begin() 된 순번째 iter) 가 검사되지 않고 넘어가는 문제. 후반 위치로 변경. - DBManager 와 RendManager 에 들어있는 vector 를 동시에 삭제시켜주어야 하는 문제를 ObjManager 로 변환하므로서 해결. - bullet 이 client 밖으로 나가거나..
-
메탈슬러그 중간과정 5 - backgroundCode/Winapi 2020. 7. 7. 01:07
애니메이션 구축 방법 1. 스프라이트 : 한번 그릴 때 다 그림을 바꿔 그려 움직이는 것 처럼 보이게 한다. 단점 -> CPU의 성능에 맡기면 일정하게 움직이지 않는다. => CPU 클럭수가 아니라 CPU 시간에 맞추어 움직일 수 있도록. (주로 60 프레임에 맞춤.) timegettime(); 함수 사용. => 컴퓨터가 부팅된 시간으로부터의 시간을 반환한다. (1초 = 1000) ex ) curtime = timegettime(); if (curtime = pertime >= 시간) { 스프라이트 위치 이동 prevtime 갱신. } 여기서 시간을 framdelay 로 느리고 빠르게 시간을 조절할 수 있다. ex ) if ( curtime = pertume >= 시간 * framdelay) framde..
-
메탈슬러그 중간과정 4 - backgroundCode/Winapi 2020. 7. 1. 00:36
플레이어 캐릭터의 Idle 상태 움직이게 하기. 플레이어 캐릭터가 메세지 for문을 돌 때 마다 Animation() 실행하면서 움직임을 반복. 1. 이미지를 담을 HDC 생성. 2. 이미지를 담을 HBITMAP 생성. 3. OLDBITMAP 생성. 4. HBITMAP 에 CreateCompatibleBitmap() 함수로 이미지를 이미지를 로드시킬 hdc 지정 5. HBITMAP 에 LoadBitmap() 함수로 비트맵 로드시키기 6. OLDBITMAP 에 SelectObject() 함수로 bitmap 교체시키기 7. TransparentBlt() 함수로 이미지 출력하기 8. SelectObject() 함수로 원래 Bitmap으로 바꿔주기 9. HDC와 HBITMAP delet..
-
메탈슬러그 중간과정 3 - backgroundCode/Winapi 2020. 6. 21. 01:22
싱글톤에서부터 시작. Mainfrm 파일에서 InputManager, DBManager, RendManager 을 불러와서 관리할 수 있도록 함. 각 Manager 는 static 정의되어 모든 곳에서 사용할 수 있는 instance를 가져오는 함수(GetInstance)로 관리함. ※ static 정의된 함수는 전역변수처럼 쓸 수 있으므로 어디에서든 사용이 가능. 그러므로 하단과 같이 사용할 수 있다. (Mainfrm.cpp) 그러므로 Mainfrm 파일에서 RendManager 를 Rend 해주어서 Background를 실행하도록 하는 Scene class 를 실행하도록 함. RendManager 에서 더블 버퍼링과 Object 를 담은 vector 내부에 접근하여 하나씩 출력할 수 있도록 함. m_..
-
싱글톤(Singleton)Code 2020. 6. 10. 13:02
싱글톤이란, 프로그램이 시작될 때 단 한번 실행되어 메모리를 할당하는 디자인 패턴이다. 싱글톤은 여러번 호출되어도 실제 생성된 객체는 단 하나로, 원하는 갯수만큼의 객체만 생성하고 그 외의 객체 생성을 막기 위한 목적의 디자인 패턴이다. 싱글톤을 사용하는 이유 1. 메모리 낭비를 방지한다. 단 하나의 객체만 생성하여 의도치 않게 다른 객체가 생성되거나 협업 도중 인식하지 못한 부분에서 재생성 되어 메모리를 낭비하는 것을 막는다. 2. 전역 인스턴스로 공유에 용이하다. 전역변수로 선언된 함수와 인스턴스로 인해 싱글톤 객체를 어디서든 사용 가능하게 되어 프로그램 내부 어디서든 사용하기 쉽게 한다. 싱글톤 사용의 단점 멀티 스레드 환경에서 동기화를 안 할 경우, 중복 생성 등의 위험이 있다. 싱글톤은 stat..