Beispiel #1
0
VOID Balls::draw(Graphics *graphics, Image *images[]) const
{ 
	ImageAttributes imAttr;
	imAttr.SetColorKey(COLOR_KEY, COLOR_KEY);
	for(size_t i = 0; i < NUMBER_OF_BALLS; i++)
		graphics->DrawImage(images[i], Rect(static_cast<INT>(points_[i].getX()) - RShari, static_cast<INT>(points_[i].getY()) - RShari, 2 * RShari, 2 * RShari), 0, 0, 2 * RShari, 2 * RShari, Unit::UnitPixel, &imAttr, 0); 
}
Beispiel #2
0
VOID Cue::draw(Graphics *pGraphics, Pen &rPen, Image &rCue) const
{	
	auxiliaryLine_.draw((ball_ - auxiliaryLine_).getX(), (ball_ - auxiliaryLine_).getY(), pGraphics, rPen, static_cast<ARGB>(Color::Gray));

	rPen.SetColor(static_cast<ARGB>(Color::Gray));
	rPen.SetWidth(3);
	pGraphics->DrawEllipse(&rPen, static_cast<INT>(mouse_.getX() - RShari), static_cast<INT>(mouse_.getY() - RShari), RShari * 2, RShari * 2);

	pGraphics->TranslateTransform(static_cast<REAL>(ball_.getX()), static_cast<REAL>(ball_.getY()));
	pGraphics->RotateTransform(angle_); 
	
	ImageAttributes imAttr;
	imAttr.SetColorKey(COLOR_KEY, COLOR_KEY);		
	pGraphics->DrawImage(&rCue, Rect(static_cast<INT>(-884 - force_ * 8), static_cast<INT>(-20 / 2), 884 * 2, 20), 0, 0, 884 * 2, 20, Unit::UnitPixel, &imAttr, 0);

	pGraphics->ResetTransform();
}
Beispiel #3
0
/// 加入一张图片,图片横向分成几帧,带关键色
/// @param[in]		const wchar_t	pszFileName*		图片文件名(Unicode)
/// @param[in]		int				nCutInHor			横向分成几帧
void CWndAnimate::AppendPNG(const wchar_t *pszFileName, COLORREF clrKey, int nCutInHor)
{
	Image *img = NULL;

	img = InitImageFromPkg(pszFileName);


	if (NULL == img)
	{
		return;
	}

	if (img->GetWidth()<=0 || img->GetHeight()<=0)
	{
		return;
	}

	ImageAttributes ima;
	ima.SetColorKey(Color(0, GetRValue(clrKey), GetGValue(clrKey), GetBValue(clrKey)), 
		Color(255, GetRValue(clrKey), GetGValue(clrKey), GetBValue(clrKey)));
	for (int i=0; i<nCutInHor; ++i)
	{
		CMemdc memDC;
		memDC.Create(GetDC()->GetSafeHdc(), img->GetWidth()/nCutInHor, img->GetHeight());

		/// 绘图
		Graphics grac(memDC.GetCompatibleDC());
		grac.DrawImage(img, Rect(0, 0, memDC.GetWidth(), memDC.GetHeight()),
			img->GetWidth()/nCutInHor*i, 0, img->GetWidth()/nCutInHor, img->GetHeight(), UnitPixel, &ima);
		grac.ReleaseHDC(memDC.GetCompatibleDC());

		m_FrameList.push_back(memDC);
		m_nFrameCount ++;
	}	

	delete img;
	img = NULL;
}
Beispiel #4
0
// ***************************************************************
//		InitImageAttributes()
// ***************************************************************
void TilesDrawer::InitImageAttributes(TileManager* manager, ImageAttributes& attr)
{
	attr.SetWrapMode(WrapModeTileFlipXY);

	if (!manager->IsBackground())
	{
		Gdiplus::ColorMatrix m = ImageHelper::CreateMatrix(manager->contrast,
			manager->brightness,
			manager->saturation,
			manager->hue,
			0.0f, RGB(255, 255, 255), false, manager->get_Alpha() / 255.0f);

		attr.SetColorMatrix(&m);

		if (manager->useTransparentColor)
		{
			Gdiplus::Color color(GetRValue(manager->transparentColor),
								 GetGValue(manager->transparentColor),
								 GetBValue(manager->transparentColor));

			attr.SetColorKey(color, color);
		}
	}
}