游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3592|回复: 6

关于SetColorKey设置关键色的问题

[复制链接]

1

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2005-4-20 10:40:00 | 显示全部楼层 |阅读模式
我在论坛是搜索SetColorKey,没找到
用Google搜,看到的例子全是:
.high = 0
.Low = 0
即把黑色作为关键色

我现在想把红色当作关键色,我这样写没有用啊:
DDCK.high = RGB(255, 0, 0)
DDCK.low = RGB(255, 0, 0)
DDmySourceSurface.SetColorKey DDCKEY_SRCBLT, DDCK

请高手指点下!!
谢谢先!!

1

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2005-4-20 11:47:00 | 显示全部楼层

Re:关于SetColorKey设置关键色的问题

我换了一段程序:
For i = 0 To 84
    Pal(i + 1).red = i * 3 + 3
    Pal(i + 1).green = 0
    Pal(i + 1).blue = 0
.......
Next
  Set DDPalette = DDdraw.CreatePalette(DDPCAPS_8BIT Or DDPCAPS_ALLOW256, Pal())

............
Set DDmySourceSurface = DDdraw.CreateSurfaceFromFile(sName, DDSD)
  DDmySourceSurface.SetPalette DDPalette
  
  DDCK.high = 85
  DDCK.low = 85
  DDmySourceSurface.SetColorKey DDCKEY_SRCBLT, DDCK

还是不行!!!

50

主题

382

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
发表于 2005-4-20 13:21:00 | 显示全部楼层

Re:关于SetColorKey设置关键色的问题

这个颜色会随屏幕色深改变而改变,具体怎么做不知道,找高人问吧

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
发表于 2005-4-20 16:28:00 | 显示全部楼层

Re:关于SetColorKey设置关键色的问题

取决于你的屏幕色深,
24位R8G8B8色时,你的语句就没问题!
否则就用相应色深的色值啊!
不知你的色深是
16位565,
32位RGBA,ARGB

32

主题

1583

帖子

1589

积分

金牌会员

Rank: 6Rank: 6

积分
1589
发表于 2005-5-9 19:22:00 | 显示全部楼层

Re:关于SetColorKey设置关键色的问题

哦对了,顺便问一下lights,ColorKey里面分为High和Low,我发现High值好像没用呀?只要把Low设定好,High随便怎么设定都没有影响,它在SetColorKey里没有用吗?

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
发表于 2005-5-9 21:09:00 | 显示全部楼层

Re:关于SetColorKey设置关键色的问题

好像是可以设置一个范围,具体就没用过了,现在很少碰2D的!

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2006-5-29 10:26:00 | 显示全部楼层

Re:关于SetColorKey设置关键色的问题

我也遇到这个问题,但在加载图片时指定透明成功,方法是改写DDLoadBitmap()为
IDirectDrawSurface * DDLoadBitmap(IDirectDraw *pdd, LPCSTR szBitmap, int dx, int dy,long clrkey)增加了一个参数clrkey,再加上:

if (clrkey>=0) {
        ddsd.dwFlags|=DDSD_CKSRCBLT;
        DDCOLORKEY ddck;
        ddck.dwColorSpaceLowValue=clrkey;
        ddck.dwColorSpaceHighValue=clrkey;
        ddsd.ddckCKSrcBlt=ddck;
}

放在生成图面之前
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 14:08

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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