游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2197|回复: 7

【求助】关于DX7中surface的叠加

[复制链接]

9

主题

22

帖子

48

积分

注册会员

Rank: 2

积分
48
QQ
发表于 2005-3-16 14:36:00 | 显示全部楼层 |阅读模式
我的程序里定义的两个offscreen surface,surface1、surface2
两个surface的大小一样,我想把surface2叠加到surface1上,再把surface1 Blt到back buffer中,
现在有个问题就是当把surface2叠加到surface1上时,surface2完全把surface1覆盖了,该怎么做?

另外在DX中实现多层Terrain一般用什么方法?


在此向各位求教,先谢了

3

主题

15

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2005-3-16 15:01:00 | 显示全部楼层

Re:【求助】关于DX7中surface的叠加

你可以使用blt拷贝整个表面的一部分。而不是全部的表面。
HRESULT Blt(
  LPRECT lpDestRect,                    
  LPDIRECTDRAWSURFACE3 lpDDSrcSurface,  
  LPRECT lpSrcRect,                     
  DWORD dwFlags,                        
  LPDDBLTFX lpDDBltFx                  
);

2

主题

89

帖子

99

积分

注册会员

Rank: 2

积分
99
发表于 2005-3-16 17:31:00 | 显示全部楼层

Re:【求助】关于DX7中surface的叠加

没明白,你是不是想实现透明?

20

主题

398

帖子

398

积分

中级会员

Rank: 3Rank: 3

积分
398
发表于 2005-3-16 18:01:00 | 显示全部楼层

Re:【求助】关于DX7中surface的叠加

没明白你的意思,请说清楚点好吗?

9

主题

22

帖子

48

积分

注册会员

Rank: 2

积分
48
QQ
 楼主| 发表于 2005-3-17 09:01:00 | 显示全部楼层

Re:【求助】关于DX7中surface的叠加

对,我的意思就是如何创建一个透明的表面

3

主题

15

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2005-3-21 16:32:00 | 显示全部楼层

Re:【求助】关于DX7中surface的叠加

透明一般是用透明色处理的。

33

主题

669

帖子

669

积分

高级会员

Rank: 4

积分
669
QQ
发表于 2005-3-22 08:47:00 | 显示全部楼层

Re:【求助】关于DX7中surface的叠加

设定关键色  surface->SetKeyColor   好久不用DX7了               

20

主题

398

帖子

398

积分

中级会员

Rank: 3Rank: 3

积分
398
发表于 2005-3-22 12:45:00 | 显示全部楼层

Re:【求助】关于DX7中surface的叠加

/* 定义透明色为黑色 */
DDCOLORKEY  colorkey;
colorkey.dwColorSpaceLowValue = 0;
colorkey.dwColorSpaceHighValue = 0;
/* 将透明色赋给表面 */
surf->SetColorKey( DDCKEY_SRCBLT, &colorkey );

colorkey.dwColorSpaceLowValue和colorkey.dwColorSpaceHighValue确定一段颜色范围,在这段范围内的颜色都为透明色,如果指定单一色为透明色,就将这两个参数设定为同一个值,可以使用RGB()混色。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-24 21:38

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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