CImage类是一个非常有用的类,利用它可以非常简单地实现贴图。
1)加载图片
basic_ui.Load("pic\\basic_ui.png");
可以读png实现直接的透明贴图,括号中填写绝对/相对路径即可。
2)透明化
直接读进来的png如果直接贴会花屏,需要进行一步处理:
void TransparentPNG(CImage *png)
{
for(int i = 0; i <png->GetWidth(); i++)
{
for(int j = 0; j <png->GetHeight(); j++)
{
unsigned char* pucColor = reinterpret_cast<unsigned char*>(png->GetPixelAddress(i , j));
pucColor[0] = pucColor[0] *pucColor[3] / 255;
pucColor[1] = pucColor[1] *pucColor[3] / 255;
pucColor[2] = pucColor[2] *pucColor[3] / 255;
}
}
}
本段函数取自于七十一雾央的《C++游戏开发》,好吧不用管这是怎么实现的……总之读进来之后用它处理一下就可以了。
3)贴图
basic_ui.Draw(m_cacheDC, 0,0);
green_button.Draw(m_cacheDC, GREEN_B