游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2726|回复: 4

请教高手关于 setcolorkey() 的疑问

[复制链接]

22

主题

132

帖子

134

积分

注册会员

Rank: 2

积分
134
发表于 2004-8-8 23:44:00 | 显示全部楼层 |阅读模式
本人初用ddraw,在640*480*16模式下用 setcolorkey() 设置透明色,结果只有黑色和白色在bltfast时起作用,其他色均不起作用,为什么?在
640*480*32模式下无此问题.

62

主题

296

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
QQ
发表于 2004-8-9 07:51:00 | 显示全部楼层

Re:请教高手关于 setcolorkey() 的疑问

因为是16色模式,所以设置的透明色也要转换成相应的16位色。比如红色,就要变成11111 000000 00000,也就是十进制的63480。

22

主题

132

帖子

134

积分

注册会员

Rank: 2

积分
134
 楼主| 发表于 2004-8-9 17:00:00 | 显示全部楼层

Re:请教高手关于 setcolorkey() 的疑问

感谢高手指点,我终于解决了这个困扰我两天的难题,不过 16位red=63488
再问一句,是否有标准的api实现这种转换.

11

主题

44

帖子

45

积分

注册会员

Rank: 2

积分
45
发表于 2004-8-9 20:50:00 | 显示全部楼层

Re:请教高手关于 setcolorkey() 的疑问

根据不同的色深 设置不同的RGB宏 这个是书上看到的
不过directx7的sdk里面附带的ddutil.h ddutil.cpp里面有一个处理  可以让你直接使用一个RGB而不用考虑具体的色深  代价就是速度减慢  不过我没有感觉

22

主题

132

帖子

134

积分

注册会员

Rank: 2

积分
134
 楼主| 发表于 2004-8-10 11:50:00 | 显示全部楼层

Re:请教高手关于 setcolorkey() 的疑问

是 ddutil.h 中的 DDSetColorKey()
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-16 13:49

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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