Beispiel #1
0
//OBBとOBBのあたり判定
CollisionParameter Actor::OBBOBB( const Actor& other)const{
	if (Device::GetInstance().GetInput()->KeyDown(INPUTKEY::KEY_R)){
		/*Graphic::GetInstance().DrawCube(parameter.matrix, parameter.cubeScale);
		Graphic::GetInstance().DrawCube(other.parameter.matrix, other.parameter.cubeScale);*/
	}
	CollisionParameter colpara;
	OBB o1 = CreateOBB(parameter.matrix, parameter.cubeScale);
	OBB o2 = CreateOBB(other.parameter.matrix, other.parameter.cubeScale);
	colpara.colFlag = OBBvsOBB(o1, o2);
	colpara.colPos = vector3(0, 0, 0);
	colpara.colNormal = vector3(0, 1, 0);

	return colpara;
}
ETHBackBufferTargetManager::ETHBackBufferTargetManager(gs2d::VideoPtr video, const ETHAppEnmlFile& file, const Platform::Logger& logger)
{
	const gs2d::str_type::string fixedWidth  = file.GetFixedWidth();
	const gs2d::str_type::string fixedHeight = file.GetFixedHeight();
	if (!ComputeLength(video, fixedWidth, fixedHeight, true))
	{
		ComputeLength(video, fixedHeight, fixedWidth, false);
	}
	const gs2d::math::Vector2 screenSize(video->GetScreenSizeF());
	m_bufferSize.x = gs2d::math::Min(screenSize.x, m_bufferSize.x);
	m_bufferSize.y = gs2d::math::Min(screenSize.y, m_bufferSize.y);

	gs2d::str_type::stringstream ss; ss << GS_L("Backbuffer created as ") << m_bufferSize.x << GS_L(", ") << m_bufferSize.y
										<< GS_L(" on ");
	if (m_bufferSize == screenSize)
	{
		m_backBuffer = ETHDynamicBackBufferPtr(new ETHNoDynamicBackBuffer(video, m_bufferSize));
		ss << GS_L("default backbuffer mode");
	}
	else
	{
		m_backBuffer = ETHDynamicBackBufferPtr(new ETHDefaultDynamicBackBuffer(video, m_bufferSize));
		ss << GS_L("dynamic framebuffer mode");
	}
	m_targetScale = m_bufferSize.x / screenSize.x;

	CreateOBB();

	logger.Log(ss.str(), Platform::Logger::INFO);
}
ETHBackBufferTargetManager::ETHBackBufferTargetManager(gs2d::VideoPtr video)
{
	m_bufferSize = video->GetScreenSizeF();
	m_backBuffer = ETHDynamicBackBufferPtr(new ETHNoDynamicBackBuffer(video, m_bufferSize));
	m_targetScale = 1.0f;
	CreateOBB();
}
void ETHBackBufferTargetManager::ScreenSizeChanged(const gs2d::math::Vector2& newScreenSize)
{
	if (m_backBuffer->MatchesScreenSize())
	{
		m_bufferSize = newScreenSize;
		CreateOBB();
	}
}