easyx

普通的画线图什么的

首先我们需要安装一个easyx的图形库,然后把头文件搞出来

#include <stdio.h>
#include <easyx.h>//easyx画线啥啥的图形库
#include <graphics.h>
#include <math.h>
#include <conio.h>//键盘操作的头文件

设置背景就是(要清屏之后才可以设置新的背景颜色)

	setbkcolor(WHITE);
	cleardevice();//需要清屏后才可以设置新的背景颜色

画线条

	setlinecolor(RED);//线条颜色
	//setlinestyle();//这个是设置线条样式的函数,但是我给忘了里面填什么了
	line(50, 50, 100, 100);//起点终点坐标

 画图(以画圆为列子)

	setfillcolor(BLACK);//设置填充颜色
	fillcircle(400, 300, 50);//填充的圆
	circle(200, 200, 50);//无填充的圆

总结画图画线

set就是设置东西
比如setbkcolor
fill就是填充

 载入图片,我们线需要定义一个图片,才可以载入图片,载入图片需要图片文件和我们的源代码在同一个栏目中也就是

 然后我们的代码就是

	IMAGE img;
	loadimage(&img, "./shu.jpg", 500, 500);
	putimage(0, 0, &img);

输出的结果就像这样子,我的酷鼠!!!

 然后我们需要接受鼠标的消息,我们需要一个鼠标消息的变量来记录每次的鼠标的消息

然后我们需要对这个消息进行判断就OK

鼠标消息函数

// 鼠标消息
// 支持如下消息:
		WM_MOUSEMOVE		鼠标移动
		WM_MOUSEWHEEL		鼠标滚轮拨动
		WM_LBUTTONDOWN		左键按下
		WM_LBUTTONUP		左键弹起
		WM_LBUTTONDBLCLK	左键双击
		WM_MBUTTONDOWN		中键按下
		WM_MBUTTONUP		中键弹起
		WM_MBUTTONDBLCLK	中键双击
		WM_RBUTTONDOWN		右键按下
		WM_RBUTTONUP		右键弹起
		WM_RBUTTONDBLCLK	右键双击
struct MOUSEMSG
{
	UINT uMsg;				 当前鼠标消息
	bool mkCtrl;			 Ctrl 键是否按下
	bool mkShift;			 Shift 键是否按下
	bool mkLButton;			 鼠标左键是否按下
	bool mkMButton;			 鼠标中键是否按下
	bool mkRButton;			 鼠标右键是否按下
	short x;				 当前鼠标 x 坐标
	short y;				 当前鼠标 y 坐标
	short wheel;			 鼠标滚轮滚动值 (120 的倍数)
};

bool MouseHit();			 检查是否存在鼠标消息
MOUSEMSG GetMouseMsg();		 获取一个鼠标消息。如果没有,就等待
void FlushMouseMsgBuffer();	 清空鼠标消息缓冲区

比如我们点击鼠标

	ExMessage msg;//鼠标消息
	if (peekmessage(&msg, EM_MOUSE))//判断是不是鼠标消息
	{
		switch (msg.message)
		{
		case WM_MOUSEMOVE://鼠标移动
			fillcircle(400, 300, 50);//填充的圆
			break;
		case WM_LBUTTONDOWN://鼠标点击
			
			break;
		default:
			break;
		}

这个的意思就是点击鼠标移动就在400 300的位置打印一个实心圆,就ok

然后我们的键盘输入也是一样的操作,只不过函数不同而已

	char key = _getch();
	switch (key)
	{
	case 72:
		y -= 20;
		printf("上键\n");
		break;
	case 80:
		y += 20;
		printf("下键\n");
		break;
	case 75:
		x -= 20;
		printf("左键\n");
		break;
	case 77:
		x += 20;
		printf("右键\n");
		break;
	}

然后如果我们要控制某一个物体移动比如控制一个圆移动就把这个圆的坐标设置为一个变量,然后通过我们的鼠标或者键盘的操作来改变这个变量的值就可以让他在不同的地方出现,这一定要在一个while循环里面!!!

fillcircle(x, y, 10);
char key=_getch();
		if (y <= 0 || x <= 0 || x >= 500 || y >= 500) {
			if (x <= 0) {
				x = 20;
			}
			else if (x >= 500) {
				x = 20;
			}
			else if (y <= 0) {
				y = 20;
			}
			else if (y >= 500) {
				y = 20;
			}
			continue;
		}
		else
		{
		switch (key)
		{
		case 72:
			y-=20;
			printf("上键\n");
			break;
		case 80:
			y+=20;
			printf("下键\n");
			break;
		case 75:
			x-=20;
			printf("左键\n");
			break;
		case 77:
			x+=20;
			printf("右键\n");
			break;
		}
		}

但是我们会发现他这个图片如果和这个在一起,那么我们的图片就会一直闪,这就需要我们的双缓冲函数

BeginBatchDraw();
		//画图操作
FlushBatchDraw();

画图操作在双缓冲函数里面!

这些就是easyx的一些操作,对于其他的一些画图的应用还是比较简单的

还有一些操作比如音乐播放

注意头文件中 mmsystem.h 和 winmm.lib 需要写在 graphics.h 的下面
使用 mciSendString () 来打开和播放音乐,后面三个参数暂时不用管,都写 0
还是建议把音乐文件放在与源代码相同目录的地方
可对音乐文件取别名 alias +别名
加载静态库:#pragma comment(lib,“winmm.lib”) (放在头文件里面)
原文链接:https://blog.csdn.net/weixin_49486457/article/details/124544489

#include <graphics.h>
#include <MMStream.h>
#include <iostream>
using namespace std;
#pragma comment(lib,"winmm.lib") //调用库函数
int main() {
	for (int i = 100000000; ; i--) {
		cin >> i;
		if(i == 1)//如果输入1 就暂停
		mciSendString("close Mighty.mp3", 0, 0, 0);
		else//否则就播放
		mciSendString("play Mighty.mp3", 0, 0, 0);
	}
	getchar();
	closegraph();
}

okok

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值