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

news2025/1/11 11:36:55

目录

下载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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1282172.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java 基础】18 I/O流

文章目录 1.基本概念2.字节流3.字符流4.标准输入输出5.最佳实践 I/O流(Input/Output 流)是计算机程序中不可或缺的一部分, 往大了说所有的操作都是IO。Java 提供了强大而灵活的 I/O 框架,支持各种数据的 读取和 写入操作。 1.基…

Pandas操作数据库

一:Pandas读取数据库数据 二:Pandas读取海量数据 三:Pandas向数据库存数据 四:Pandas写入海量数据

docker 可视化工具操作说明 portainer

官网地址 https://docs.portainer.io/start/install-ce/server/docker/linux 1.First, create the volume that Port docker volume create portainer_data2.下载并安装容器 docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restartalways -v /var/run/docker…

web自动化 -- pyppeteer

由于Selenium流行已久,现在稍微有点反爬的网站都会对selenium和webdriver进行识别,网站只需要在前端js添加一下判断脚本,很容易就可以判断出是真人访问还是webdriver。虽然也可以通过中间代理的方式进行js注入屏蔽webdriver检测,但…

自然语言处理:电脑如何理解我们的语言?

☁️主页 Nowl 🔥专栏《机器学习实战》 《机器学习》 📑君子坐而论道,少年起而行之 ​ 文章目录 ​编辑 常见方法 1.基于词典的方法 2.基于计数的方法 基于推理的方法 Bert input_ids attention_mask token_type_ids 结语 在广…

英伟达狂卖50万台GPU!AI爆火背后,是显卡的争夺

据市场跟踪公司Omdia的统计分析,英伟达在第三季度大约卖出了50万台H100和A100 GPU! 此前,Omdia通过英伟达第二季度的销售额,估计其大概卖出了900吨GPU! 大语言模型火爆的背后,英伟达建立起了强大的显卡帝…

分治-归并排序

文章目录 🌞315. 计算右侧小于当前元素的个数🌈1. 题目⛅2. 算法原理🪐3. 代码实现 🌕493. 翻转对🌠1. 题目⭐2. 算法原理🌟3. 代码实现 🌞315. 计算右侧小于当前元素的个数 🌈1. 题…

深圳找工作的网站

深圳吉鹿力招聘网是一家在深圳做的比较好的招聘网站,提供一站式的专业人力资源服务,包括网络招聘、校园招聘、猎头服务、招聘外包、企业培训以及人才测评等。深圳吉鹿力招聘网在深圳的口碑相当好,是一个很好的选择。 深圳找工作用 吉鹿力招聘…

构建高效预约系统:深入探讨预约系统源码的设计和实现

随着各行业对高效资源利用和便捷服务的需求不断增加,预约系统成为了解决问题的有效工具。在这篇文章中,我们将深入研究预约系统源码的设计原则,并展示一些基本的技术代码,帮助读者更好地理解预约系统的实现方式。 设计原则 1. …

嘴尚绝卤味:健康卤味,未来餐饮市场的新星

随着人们生活水平的提高,对于吃的要求也越来越高。尤其是在快节奏的现代社会中,健康饮食成为了越来越多人的追求。在这种背景下,健康卤味这一新兴食品品类应运而生,成为了餐饮市场的新宠儿。 一、健康卤味的崛起 传统的卤味制作过…

「Verilog学习笔记」占空比50%的奇数分频

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 根据题意7分频,实际上是第一次电平变化经历了4个上升沿3个下降沿,第二次电平变化是4个下降沿3个上升沿,所以用两个计数器就行了。分别对…

Git:修改最近一次 Git 提交的描述,使用 --amend 选项

目录 步骤1. 使用编辑器修改最近一次提交的描述 git commit --amend2. 在编辑器中修改描述3. 保存修改4. 如果提交包含文件修改5. 强制推送(如果已经推送到远程仓库) 步骤 1. 使用编辑器修改最近一次提交的描述 git commit --amend git commit --amend…

软考初级、中级、高级怎么选?

本年度的PMP考试已经结束啦,对于刚考完的威宝和已经通过考试的威班们来说,刚开始接触PMP认证的时候在科普阶段有看到过“软考”的字眼。什么是软考,它主要考什么?通常用于哪些方面?软考又和PMP有什么关系?如…

备战春招——12.3 算法

哈希表 哈希表主要是使用 map、unordered_map、set、unorerdered_set、multi_,完成映射操作,主要是相应的函数。map和set是有序的,使用的是树的形式,unordered_map和unordered_set使用的是散列比表的,无序。 相应函数…

CityEngine2023 shp数据城市与路网三维模型并导入UE5

目录 0 引言1 城市和道路数据获取1.1 常用方法1.2 OSM数据获取1.3 OSM数据格式1.3.1 所有格式1.3.2 Shapefile格式 2 实践2.1 导入数据(.shp)2.2 构建三维模型2.3 将模型导入UE5 🙋‍♂️ 作者:海码007📜 专栏&#xf…

mac M1芯片上编译车载aaos

一:mac上需要磁盘分区(支持大小写) mac分区: 在 Mac 上的“磁盘工具”中将物理磁盘分区 - 官方 Apple 支持 (中国) 注意:盘符名字不能有空格否则编译aaos时报错 注意:盘符名字不能有空格否则编译aaos时报…

2023.12.2 关于 Spring AOP 详解

目录 Spring AOP Spring AOP 常见使用场景 AOP 组成 切面(类) 切点(方法) 通知 ​编辑 前置通知(Before) 后置通知(After) 返回通知(AfterReturning&#xff0…

认识DHT11温湿度传感器并制作温度报警器

Arduino UNO Arduino IDE开发环境 Arduino DHT11温湿度传感器 ​ 一、认识Arduino的DHT11温度湿度传感器 DHT传感器由电容式湿度传感器和热敏电阻两部分组成。除此之外,模块内部还有一些模拟信号到数字信号的转换,将温度湿度以数字信号的方式输…

EPS地形图绘制技巧--快捷键

如何导入外业点数据? (1)打开EPS软件,新建一个工程。如下: (2)在【文件】-【输入输出】-【调入坐标文件数据】中,调入测量点数据,如下: (3&#…

asp.net_sql2008公司人事管理系统

登录模块 流程图: ◆ 职工输入用户名、密码并选择登录身份,根据选择的身份做不同的操作 ◎ 若选择的是“职工”,系统将查询数据库中的用户表Users的记录,用户名密码核对正确后加载职工主界面; ◎ 若选择的是“管理员…