#include "Circle.h"
#include <cmath>

#define M_PI 3.14159265358979323846

//构造函数
Circle::Circle()
{
	
}

//析构函数
Circle::~Circle()
{
	m_size = 0;
	m_x = 0;
	m_y= 0;
	m_liveCycle = 0;
	m_orientation = 0;
	m_speed = 0;
}

void Circle::Create()
{
	//设置尺寸为随机的1到10
	m_size = rand() % 10 + 1;
	//设置方向
	m_orientation = rand() % 360;
	m_orientation = M_PI * m_orientation / 180.0;
	//设置速度
	m_speed = ((double)(rand() % 200)) / 100.0;

	//设置颜色
	m_color.r = rand() % 255 / 100.0;
	m_color.g = rand() % 255 / 100.0;
	m_color.b = rand() % 255 / 100.0;

	//设置生命周期
	m_liveCycle = rand() % 300;

	//设置初始位置
	m_x = 0;
	m_y = 0;
}

void Circle::InitOrigin()
{	
	m_size = 5;	
	m_orientation = 1;	
	//设置速度
	m_speed = 1;

	m_color.r = rand() % 255 / 100.0;
	m_color.g = rand() % 255 / 100.0;
	m_color.b = rand() % 255 / 100.0;

	//设置生命周期
	m_liveCycle = 50;

	//设置初始位置
	m_x = SCREEN_WIDTH / 2;
	m_y = 10;
}

//判断是否离开窗口了
bool Circle::IsLeaveWindow() 
{
	if (fabs(m_x) > SCREEN_WIDTH / 2 || fabs(m_y) > SCREEN_HEIGHT / 2)
		return true;
	else
		return false;
}

//判断是否生命周期到了
bool Circle::IsDead()
{
	return m_liveCycle <= 0 ? true: false;
}

//移动
void Circle::Move()
{

	if((m_x+SCREEN_WIDTH/2)< 100 || m_x+SCREEN_WIDTH/2 > 400)
	{	
		m_x =m_x + m_speed * cos(m_orientation)/2;
		m_y =m_y - fabs(m_speed * sin(m_orientation))*1.2;
	}
	else
	{
		m_x =m_x + m_speed * cos(m_orientation);
		m_y =m_y + m_speed * sin(m_orientation);
	
	}
	m_liveCycle --;


}