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

目录

下载Easyx

检验

绘制窗口

画圆

响应事件的处理

清除原先绘图

渲染缓冲区

逻辑

代码托管


下载Easyx

在Easyx官网下载大暑版:

检验

写如下代码:

编译运行,如果控制台出现2023字样,代表配置成功:

绘制窗口

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

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

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

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

我们需写如下代码:

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

但是千万不要这样写:

会卡爆的要这样写:这样我们就可以得到一个1280*720的窗口了:

画圆

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

写如下代码:

响应事件的处理

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

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

按下键盘的按钮,鼠标的移动和单击等等我们都称之为一个消息当我们触发这些消息时,eaxy会把这些消息放到消息队列 中:

如果peekmessage()函数可以从消息队列中拉取到数据,那么就会返回true:

反之,如果没有消息可以拉取,就会返回false:

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

ExMessage的成员有一个 标识鼠标移动的 消息标识:

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

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

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

清除原先绘图

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

渲染缓冲区

这个是我们的1280*720的窗口:

调用 cleardevice()函数清除图形:

而我们调用了BeginBatchDraw()函数就会再创建一个画布,这个画布默认是不可见的,接下来再画圆就把这个圆绘制在新画布上:

等圆画好后再调用 FlushBatchDraw()和 EndBatchDraw()函数把新画布换到显示可见:

逻辑

代码托管

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

相关推荐
探码科技29 分钟前
AI知识管理软件推荐:九大解决方案与企业应用
前端·ruby
编程小黑马30 分钟前
解决flutter 在控制器如controller 无法直接访问私有类方法的问题
前端
unfetteredman41 分钟前
Error: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found
前端·javascript·vite
云存储小精灵1 小时前
Dify x 腾讯云 COS MCP:自然语言解锁智能数据处理,零代码构建 AI 新世界
前端·开源
山间板栗1 小时前
微信小程序环境变量设置方案
前端
电商API大数据接口开发Cris1 小时前
Java Spring Boot 集成淘宝 SDK:实现稳定可靠的商品信息查询服务
前端·数据挖掘·api
pepedd8641 小时前
LangChain:大模型开发框架的全方位解析与实践
前端·llm·trae
HANK1 小时前
KLineChart 绘制教程
前端·vue.js
Jerry2 小时前
Compose 利用工具加快开发速度
前端
前端小张同学2 小时前
前端行情好起来了,但是我依然没拿到offer
前端