win32,用c编贪吃蛇。蛇移动绘图问题。蛇向前一步时,头前面画一格,然后尾巴那里怎样删去。

就是在窗口里画的图案怎么用函数删去... 就是在窗口里画的图案怎么用函数删去 展开
 我来答
海狮2D
2012-02-12 · TA获得超过3019个赞
知道大有可为答主
回答量:1904
采纳率:55%
帮助的人:1006万
展开全部
有两种方式:
A、绘图时使用XOR绘图,这样再XOR就会恢复原状。
B、重新绘制该区域背景。
追问
xor是什么跟gdi有关吗,要怎么写啊
追答
中文是异或,一般绘图的都有,异或方式、直接覆盖方式。
例如,最后一个参数。
BOOL BitBlt(
__in HDC hdcDest,
__in int nXDest,
__in int nYDest,
__in int nWidth,
__in int nHeight,
__in HDC hdcSrc,
__in int nXSrc,
__in int nYSrc,
__in DWORD dwRop
);

举个例子,设背景是a,需要改成b,设c= a xor b;
如果原来是背景,则a xor c = b。
如果原来是已经画好的,则b xor c = a。
xor的性质就是 (a xor b) xor b = a
这里假设,你用的是bitblt,这个最简单,效果也最好。由于背景a和那个c都可以先算好。所以第一次画背景,以后背景变成蛇,画C,再画C又恢复原状了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式