C++ Easyx 让圆球跟随鼠标移动

目录

下载Easyx

 检验

绘制窗口

画圆

响应事件的处理

清除原先绘图

渲染缓冲区

逻辑

代码托管


下载Easyx

在Easyx官网下载大暑版:

 检验

写如下代码:

C++ Easyx 让圆球跟随鼠标移动_第1张图片编译运行,如果控制台出现2023字样,代表配置成功:

绘制窗口

进入Eaxy官方网站,点击文档:

选择 函数->绘图函数->initgraph:

C++ Easyx 让圆球跟随鼠标移动_第2张图片

可以看见initgraph()函数有如下三个参数:

C++ Easyx 让圆球跟随鼠标移动_第3张图片

现在我们想生成一个1280*720大小的窗口:

C++ Easyx 让圆球跟随鼠标移动_第4张图片

我们需写如下代码:

但是此时运行窗口会一闪而逝,我们需要把它写在循环里。

但是千万不要这样写:

会卡爆的要这样写:这样我们就可以得到一个1280*720的窗口了:C++ Easyx 让圆球跟随鼠标移动_第5张图片

画圆

在文档->图形绘制相关函数下找到soildcircle()函数。

C++ Easyx 让圆球跟随鼠标移动_第6张图片

 写如下代码:

C++ Easyx 让圆球跟随鼠标移动_第7张图片

响应事件的处理

接下来我们要对鼠标响应事件进行处理,让圆球跟着我们的鼠标移动。

在文档->消息处理相关函数中有一个peekmessage()函数,用于获取消息。

按下键盘的按钮,鼠标的移动和单击等等我们都称之为一个消息C++ Easyx 让圆球跟随鼠标移动_第8张图片当我们触发这些消息时,eaxy会把这些消息放到消息队列中:

如果peekmessage()函数可以从消息队列中拉取到数据,那么就会返回true:C++ Easyx 让圆球跟随鼠标移动_第9张图片

反之,如果没有消息可以拉取,就会返回false:C++ Easyx 让圆球跟随鼠标移动_第10张图片

文档->消息处理相关函数中有一个ExMessage()函数:

ExMessage的成员有一个   标识鼠标移动的 消息标识:          C++ Easyx 让圆球跟随鼠标移动_第11张图片

因此我们可以写一段这样的代码:

C++ Easyx 让圆球跟随鼠标移动_第12张图片

 但是运行之后鼠标移动会变为如下所示:

C++ Easyx 让圆球跟随鼠标移动_第13张图片

原因是我们没有把原先位置的圆擦除掉。

清除原先绘图

   在Eaxyx文档->绘图设备相关函数中有一个 cleardevice()函数:我们在每次绘制圆之前清空一下之前画的圆就行了:

渲染缓冲区

这个是我们的1280*720的窗口:C++ Easyx 让圆球跟随鼠标移动_第14张图片

 调用  cleardevice()函数清除图形:C++ Easyx 让圆球跟随鼠标移动_第15张图片

而我们调用了BeginBatchDraw()函数就会再创建一个画布,这个画布默认是不可见的,接下来再画圆就把这个圆绘制在新画布上:C++ Easyx 让圆球跟随鼠标移动_第16张图片

等圆画好后再调用  FlushBatchDraw()和  EndBatchDraw()函数把新画布换到显示可见:C++ Easyx 让圆球跟随鼠标移动_第17张图片

逻辑

C++ Easyx 让圆球跟随鼠标移动_第18张图片

C++ Easyx 让圆球跟随鼠标移动_第19张图片

C++ Easyx 让圆球跟随鼠标移动_第20张图片

C++ Easyx 让圆球跟随鼠标移动_第21张图片

C++ Easyx 让圆球跟随鼠标移动_第22张图片

C++ Easyx 让圆球跟随鼠标移动_第23张图片

代码托管

圆球跟随鼠标移动/Test.cpp · 孙鹏宇/孙鹏宇的第一个仓库 - 码云 - 开源中国 (gitee.com)

你可能感兴趣的:(html,前端)