-
메탈슬러그 중간과정 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)
framdelay => 1.0f (높아질수록 느려지고 낮아질수록 빨라짐)
Object.h / Object.cpp
히트판정
(총알을 몬스터에게 히트시키기)
1. 총알객체
2. 몬스터 객체
3. 충돌판정 (IntersectRect() : RECT 와 충돌)
<Manager>
- 발사 (keyboard)
- 총알 객체 생성
- 총알 객체 DB Manager에 넣음
<Bullet>
- Run()
{
for문
{
히트박스와 DBManager::Monster 과 충돌 검사
if ( 충돌시 )
{
몬스터 hp 감소.
bdead ( bullet이 살아있는지 보여주는 bool 변수 ) = true;
}
}
}
<IntersectRect()>
RECT 두개 인자를 가지고 있음.
닿아있으면 true. 아닐 경우 false.
RECT1 left,top 값이 RECT2 right,bottom 보다 작으면 겹쳐짐.
RECT2 left,top 값이 RECT1 right,bottom 보다 작으면 겹쳐짐.
지형 만들기 - 타일형
(Rect 충돌과 유사)
지형의 모양대로 가상의 타일을 만들어 그 위에 object 가 서있을 수 있도록 함.
1. 몇 칸으로 쪼개는지
2. TerrainTile (객체생성)
-> 플레이어와 충돌하는 로직
3. 타일과 object가 충돌하면 위로 올려주기
'Code > Winapi' 카테고리의 다른 글
메탈슬러그 중간과정 6 - background (0) 2020.07.17 메탈슬러그 중간과정 4 - background (0) 2020.07.01 메탈슬러그 중간과정 3 - background (0) 2020.06.21 메탈슬러그 중간과정 2 - background (0) 2020.06.03 메탈슬러그 중간과정 1 - background (0) 2020.06.01