게임제작/API

Rectangle(), Ellipse() 함수로 도라에몽 만들기

SYeonni 2021. 5. 28. 15:38

> 사각형 그리기 Rectangle()

> 타원 그리기 Ellipse() 

위 2개의 함수를 사용해서 사각형, 원을 출력하여 도라에몽을 만들어 봤다. 

 

 

 

구현방식 

1. 사이즈 정보를 담기 위한 구조체 만들기

#pragma once

#ifndef __STRUCT_H__
#define __STRUCT_H__

typedef struct tagInfo
{
	float	fX;
	float	fY;
	int		iCX;
	int		iCY;
}INFO;

#endif // !__STRUCT_H__

 

2. 구조체 값 초기화 

void CPlayer::Initialize()
{
	m_tInfo.fX = _fx;
	m_tInfo.fY = _fy;
	m_tInfo.iCX = _icx;
	m_tInfo.iCY = _icy;

	m_fSpeed = _fSpeed;
}

3. 매 프레임마다 사이즈 업데이트

void CObj::Update_Rect()
{
	m_tRect.left = (LONG)(m_tInfo.fX - (m_tInfo.iCX >> 1));
	m_tRect.top = (LONG)(m_tInfo.fY - (m_tInfo.iCY >> 1));
	m_tRect.right = (LONG)(m_tInfo.fX + (m_tInfo.iCX >> 1));
	m_tRect.bottom = (LONG)(m_tInfo.fY + (m_tInfo.iCY >> 1));
}

4. 출력

void CPlayer::Render(HDC _DC)
{
	Rectangle(_DC, m_tRect.left, m_tRect.top, m_tRect.right, m_tRect.bottom);
}
void CBullet::Render(HDC _DC)
{
	Ellipse(_DC, m_tRect.left, m_tRect.top, m_tRect.right, m_tRect.bottom);
}
728x90