游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1562|回复: 1

唐老师来请进来看下

[复制链接]

50

主题

244

帖子

319

积分

中级会员

Rank: 3Rank: 3

积分
319
QQ
发表于 2004-10-29 13:30:00 | 显示全部楼层 |阅读模式
我把你代码里的Alpha(),TransparentBlt2这2个函数复制到我的程序里,可是不能实现半透明效果,请你帮我看看我的程序哪错了好吗?或者是还要处理什么其他部分的内容?Alpha的改动如下
void game::Alpha(int x,int y,int w,int h)    //w,h是要半透明处理的图片的宽和高;            
{       
                HDC hdc;
        if (lpDDSback->GetDC(&hdc) != DD_OK) return; //lpDDSback是我定义的主缓存
        BitBlt(hDC0,0,0,w,h,hdc,x,y,SRCCOPY);
        BitBlt(hDC1,0,0,w,h,hdc,x,y,SRCCOPY);
        lpDDSback->ReleaseDC(hdc);
        if (lpDDSmap->GetDC(&hdc) != DD_OK) return;//lpDDSmap是要半透明处理图片的页面
        TransparentBlt2(hDC1,0,0,w,h,hdc,0,0,w,h,RGB(255,255,255));//透明显示          
        AlphaBlend(hDC1,0,0,w,h,hDC0,0,0,w,h,rBlend);//半透明处理
        BitBlt(hdc,0,0,w,h,hDC1,0,0,SRCCOPY);
        lpDDSmap->ReleaseDC(hdc);
        if(lpDDSback->BltFast
                (x,y,lpDDSmap[1],NULL,DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY)!=DD_OK) return;
}
请唐老师一定要帮忙看下,如果方便请教我下怎么实现半透明好吗?

50

主题

244

帖子

319

积分

中级会员

Rank: 3Rank: 3

积分
319
QQ
 楼主| 发表于 2004-10-29 13:31:00 | 显示全部楼层

Re:唐老师来请进来看下

不好意思,最后一句其实应该是
if(lpDDSback->BltFast
(x,y,lpDDSmap,NULL,DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY)!=DD_OK) return;
}
因为我贴上来的时候只改掉了一个
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-23 00:39

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表