游戏开发论坛

 找回密码
 立即注册
搜索
查看: 13946|回复: 40

BitBlt

[复制链接]

8

主题

120

帖子

120

积分

注册会员

Rank: 2

积分
120
QQ
发表于 2005-11-9 01:04:00 | 显示全部楼层 |阅读模式
怎么我绘出来的图很有问题啊!
游戏之家,我是模仿你那个100架小飞机写的代码。
一张图是有颜色的
一张图是黑白的
用bitblt来绘制出来后是黑色的呢?

MERGEPAINT,SRCAND,vbSrcCopy
请问这几个参数是怎么回事

8

主题

120

帖子

120

积分

注册会员

Rank: 2

积分
120
QQ
 楼主| 发表于 2005-11-9 01:36:00 | 显示全部楼层

Re:BitBlt

乱试搞定了。。但是还是不太明白。。
怎么错的时候颜色怪怪的。。

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
发表于 2005-11-9 13:34:00 | 显示全部楼层

Re:BitBlt

把你的程序发上来我看看.

8

主题

120

帖子

120

积分

注册会员

Rank: 2

积分
120
QQ
 楼主| 发表于 2005-11-9 19:21:00 | 显示全部楼层

Re: BitBlt

现在人物脚底下的阴影还是有问题。。
不知道怎么让它是真正的透明的。

sf_2005119192126.rar

118.19 KB, 下载次数:

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2005-11-9 19:28:00 | 显示全部楼层

Re:BitBlt

先把背景弄上去,用SRCCOPY,是直接传送像素。
然后用黑白图AND,这样,黑色部分刚好遮住任务区域。
最后,用彩色图(周围是黑色)OR,这样,刚才的黑色部分就变成彩色的了。

SRCCOPY就是拷贝,原来什么样,就什么样。适合背景处理。
AND是“只要有0,结果就是0”。适合把一部分弄成黑色(00000000)。
OR是“只要有1,结果就是1”。适合把0变成1,原来是1还是1。
适合把原来的黑色(00000000)变成彩色的(如01101001)。

(00001111)AND(00000000)=00000000,就是被弄成黑色。
(00000000)OR(01101001)=01101001,把黑色改变成彩色。

8

主题

120

帖子

120

积分

注册会员

Rank: 2

积分
120
QQ
 楼主| 发表于 2005-11-9 19:55:00 | 显示全部楼层

Re: BitBlt

新哒~

sf_2005119195518.rar

118.77 KB, 下载次数:

8

主题

120

帖子

120

积分

注册会员

Rank: 2

积分
120
QQ
 楼主| 发表于 2005-11-9 20:09:00 | 显示全部楼层

Re: Re:BitBlt

snhun: Re:BitBlt

先把背景弄上去,用SRCCOPY,是直接传送像素。
然后用黑白图AND,这样,黑色部分刚好遮住任务区域。
最后...


不好意思。
您说的我不是很明白。
您能看一下我的发上来的源代码,照着说吗?
我很笨,不好意思。

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
发表于 2005-11-10 08:27:00 | 显示全部楼层

Re:BitBlt

做的很不错呀!!

    '*************************绘制地图***************************
    BitBlt Me.hDC, 0, 0, Me.ScaleWidth, Me.ScaleHeight, picMap.hDC, 0, 0, vbSrcCopy
    BitBlt Me.hDC, 0, -800, Me.ScaleWidth, Me.ScaleHeight, picMap.hDC, 0, 0, vbSrcCopy

这个画地图是不是可以去掉一句, 我不明白你为什么要重画两次地图?
背景滚动才要画两次, 目的是两张地图可以接起来中间不断开.

8

主题

120

帖子

120

积分

注册会员

Rank: 2

积分
120
QQ
 楼主| 发表于 2005-11-10 22:59:00 | 显示全部楼层

Re:BitBlt

呵呵,谢谢鼓励呀!
明白了~~
刚开始不明白BitBlt的时候,是复制你的代码嘛~
之后我没管那个地图的了。
现在明白了。
很大张地图
就把它分割开,然后用这种方法动态载入?

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
发表于 2005-11-11 08:29:00 | 显示全部楼层

Re: BitBlt

你要的程序, 连续动画的做法:

sf_2005111182924.rar

93.33 KB, 下载次数:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-22 16:54

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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