一、基本思路
1.现在有三张背景图:天空和草地、山峦、房屋;
2.天空在最远处,其次是草地和山峦(因为山峦在草地上),最后是房屋;
3.背景的循环速度是天空最慢、然后是山峦、最后是草地和房屋;
4.恐龙让它原地跑动,以num记录图号,每次到末尾号,再从第0号开始;
二、背景循环贴图
1.以天空为例,设x0表示背景图从左向右滚动右边需要切割的宽度,初值为0;
2.设背景图宽度640,裁剪的右边区域的左上角坐标为:(640-x0,0),把该区域贴到mdc以(0,0)为起点的坐标区域上;
3.然后把天空图剩下的部分贴到mdc中以(x0,0)为起点的坐标上;
4.假设每次x0增加5,每次贴图就实现了背景图的移动,直到x=640时,再重新设为0;
5.需要注意,山峦和房屋除了实现循环外,还要进行透明处理;
三、代码如下
#include "stdafx.h"
HINSTANCE hInst;
HBITMAP dra,bg[3];
HDC hdc,mdc,bufdc;
HWND hWnd;
DWORD tPre,tNow;
int x0=0,x1=0,x2=0,num=0;//x0、x1、x2三张背景图由左向右移动时所要切割的宽度;num表示图号
ATOM MyRegisterClass(HI