当前位置: 首页 > article >正文

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)


http://www.kler.cn/news/156539.html

相关文章:

  • 【Node.js】解决npm报错:RequestError: unable to verify the first certificate
  • 手动安装配置dapr环境
  • 人工智能发展史
  • 算法leetcode|91. 解码方法(rust重拳出击)
  • 网易区块链,网易区块链赋能赣州脐橙数字藏品,数字指纹解决方案
  • 【Altera】Cyclone10 FPGA DDR3使用
  • 预约系统源码解析:打造智能定制化预约服务的技术奇迹
  • SQL Sever Unicode字符串简单介绍
  • 抽象类与接口
  • localForage使用 IndexedDB / WebSQL存储
  • 3D模型渲染导致电脑太卡怎么办?
  • 比特币上的有状态多重签名
  • 09 C++ 中的循环(while循环、do-while循环、for循环及嵌套循环)
  • Android 源码编译
  • Go 语言真正有什么用处?
  • python控制网页操作
  • 【OpenCV】计算机视觉图像处理基础知识
  • 危机公关之负面信息监测与处置原则
  • Python 2 和 Python 3 的区别
  • 邦芒支招:管理者做好管理带团队的十大招数
  • 企业软件的分类有哪些|app小程序定制开发
  • 施密特触发器
  • JavaWeb | JSP内置对象
  • github问题解决(持续更新中)
  • 最受好评的 Android 数据恢复软件工具
  • Topic和Partition
  • CG 函数
  • 【FPGA】Verilog:二进制并行加法器 | 超前进位 | 实现 4 位二进制并行加法器和减法器 | MSI/LSI 运算电路
  • win10使用copilot(尝试中)
  • java学习part31String