游戏开发论坛

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

为什么关键色只能是RGB(0,255,0)?

[复制链接]

1

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2003-10-23 08:47:00 | 显示全部楼层 |阅读模式
用DDraw,想实现24位颜色深度位图的透明贴图,用下面的代码
DDCOLORKEY ddck;
  ddck.dwColorSpaceLowValue = RGB(255,0,255);
  ddck.dwColorSpaceHighValue = RGB(255,0,255);
  lpDDSLanted->SetColorKey(DDCKEY_SRCBLT, &ddck);
为什么只有关键色为RGB(0,255,0)时才能透明,这是为什么,怎么才能用其他关键色?

45

主题

286

帖子

314

积分

中级会员

自由游戏制作人

Rank: 3Rank: 3

积分
314
QQ
发表于 2003-10-23 22:17:00 | 显示全部楼层

Re:为什么关键色只能是RGB(0,255,0)?

HRESULT CSurface::SetColorKey( DWORD dwColorKey )
{
    if( NULL == m_pdds )
        return E_POINTER;

    m_bColorKeyed = TRUE;

    DDCOLORKEY ddck;
    ddck.dwColorSpaceLowValue  = ConvertGDIColor( dwColorKey );
    ddck.dwColorSpaceHighValue = ConvertGDIColor( dwColorKey );
   
    return m_pdds->SetColorKey( DDCKEY_SRCBLT, &ddck );
}

这是DirectX8.0里的例子函数,你按这样写就可以啦,没什么不对呀,不过有一点m_pdds是你要设的那张图的DDRaw表面
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-4-19 15:11

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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