昨天的角色移动是键盘控制角色,今天做了改进,用鼠标控制角色移动
#include<graphics.h>
#include<stdio.h>
#include<conio.h>
#include<math.h>
int num = 0;
double x0 = 0;
double y2 = 450;
double x1;
double y3;
double term;
double mx;
double my;
IMAGE background, boy1, boy2;
MOUSEMSG m,m1;
void InitInstance()
{
loadimage(&background, "background.jpg");//加载游戏背景
loadimage(&boy1, "boy1.bmp");//背景图
loadimage(&boy2, "boy2.bmp");//屏蔽图
}
void Interface()//初始化基本数据
{
initgraph(1024, 768);//初始化画布大小
putimage(0, 0, &background);
putimage(double (x0), double (y2), 70, 124, &boy2, 70 * num, 124 * 2, SRCAND);//角色初始位置
putimage(double (x0), double (y2), 70, 124, &boy1, 70 * num, 124 * 2, SRCPAINT);
}
//左
void Left()
{
void Key_Down();
switch (m.uMsg)
{
case WM_LBUTTONDOWN://判断鼠标左键按下
//往左走
while (1)
{
//switch (m1.uMsg)
//{
//case WM_LBUTTONDOWN:
// m.x = m1.x;//想改变mx,my的值,重新给角色一个坐标,达到中途改变路线的目的
// m.y = m1.y;
// Key_Down();
// break;
//}
if (x0 <= (mx - 35) )//当角色走到目的地时跳出死循环
{
break;
}
putimage(0, 0, &background);//贴背景
putimage(x0, y2, 70, 124, &boy2, 70 * num, 124 * 1, SRCAND);//屏蔽图
putimage(x0, y2, 70, 124, &boy1, 70 * num, 124 * 1, SRCPAINT);//背景图
//当角色走完一套动作时,回到初始动作
num++;
if (num == 4)
num = 0;
Sleep(70);//调整角色跨步时间
//跨步距离
x0 -= 7.5;
}
break;
}
}
void Right()
{
void Key_Down();
switch (m.uMsg)
{
case WM_LBUTTONDOWN://判断鼠标左键按下
//在鼠标左键按下位置记录坐标每项,mx,my
//往右下角走
while (1)
{