怎样在利用 sleep 循环播放图片实现简单动画时,进行鼠标交互

0

这个代码运行起来自后接收不到鼠标信息,无法终止,不知道是不是因为用了 sleep 的问题

#include <easyx.h>
#include <stdio.h>
#include <graphics.h>
#include <conio.h>
#include <stdlib.h>
#include <algorithm>

int main()

	initgraph(WIDTH, 590, SHOWCONSOLE); // 新开一个画面
	
	IMAGE gameshow1, gameshow2, gameshow3;

	loadimage(&gameshow1, _T("C:\\Users\\suenos\\Desktop\\use\\gameshow1.png"));
	loadimage(&gameshow2, _T("C:\\Users\\suenos\\Desktop\\use\\gameshow2.png"));
	loadimage(&gameshow3, _T("C:\\Users\\suenos\\Desktop\\use\\gameshow3.png"));
	
	MOUSEMSG m;//定义鼠标信息
	m = GetMouseMsg();//获取一条鼠标消息

	while (true)
	{
		
		// 循环播放
		drawAlpha(&gameshow1, 0, 0);//drawAlpha为一个自写函数,其效果和putimage一致
		sleep(200);
		drawAlpha(&gameshow2, 0, 0);
		sleep(200);
		drawAlpha(&gameshow3, 0, 0);
		sleep(200);

		if (m.uMsg == WM_LBUTTONDOWN && m.x >= 240 && m.x <= 725 && m.y >= 520 && m.y <= 590)
		{
			printf("000");

			closegraph();

			break;
		}
	}
}

ava
希冉

2021-4-21

0

因为你在循环的时候并没有获取鼠标消息。你的鼠标消息一直是最开始获取的那一个,始终没有获取新的鼠标消息。

ava
慢羊羊

2021-4-21

0

不要用sleep的方法,改用自加计数,到到一定的值去控制的方法,以保证mouse始终在运行。

ava
人民万岁

2021-4-30

技术讨论社区