【C】初识EasyX图形编程

简介: 【C】初识EasyX图形编程

相关视频——【C/C++/EasyX】学编程,做游戏,小白快速入门图形编程,零基础入门到精通,学习就是这么快乐_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

我的小站——半生瓜のblog,同步更新。


1.基本说明

  • EasyX是针对C++的图形库,可以帮助C/C++初学者快速上手图形和游戏编程。
  • 比如 ,可以基于EasyX图形库很快用几何图形画一个房子,或者一辆移动的小车,可以编写俄罗斯方块 、贪吃蛇、黑白棋等小游戏。
  • 许多人学编程是从C语言入门的,而目前的现状是“

    • 学校值只教基础语法,一直在黑窗口练习,同学们学的很乏味。、
    • 即使有的学校教图形编程,也是使用一些难度较高的, 比如Win32,OpenlGl门槛依然很高,初学者容易收到打击。
    • 开始引出我们的EasyX。

2.原理

​ 基于Windows图形编程,将Windows下的复杂程序过程进行封装,将Windows下的编程过程隐藏,给用户提供一个简单熟悉的接口。用户对于图形库中函数的调用,最终都会由Windows的底层API实现。

3.安装

4.颜色

​ 用RGB宏合成颜色,实际上合成出来的颜色是一个十六进制的的整数。

每个颜色部分的值都是0~255

5.坐标和设备

  • 坐标默认的原点在窗口的左上角,X轴向右为正,Y 轴向下为正,度量单位是像素点。
  • 设备:简单来说,就是绘图表面。

    • 在EasyX中,设备分两种,一种是默认的绘图窗口另一种是IMAGE对象。通过SetWorkinglmage()函数可以设置当前用于绘图的设备。设置当前用于绘图的设备后,所有的绘图函数都会绘制在该设备上。(后面再去理解)

6.窗口函数

​ 窗口函数用于窗口的一些操作

initgraph(int width,int height,int flag = NULL);//用于初始化绘图窗口
//width 指定窗口的宽度
//height 指定窗口的高度
//flag 窗口的样式默认为NULL
closegraph();//关闭绘图窗口
cleardevice();//清空绘图设备

7.图形绘制函数

  • 图形绘制函数用于在窗口上绘制各种图形。
  • 绘图函数从填充样式分类可以分为无填充,有边框填充,无边框三种。
以画圆为例
    circle()无填充
    fillcircle()有边框填充
    solidcircle()无边框填充

区别:

在这里插入图片描述

  • 从形状来分,常用的可以分为八种。

在这里插入图片描述

  • 设置填充颜色setfillcolor();
  • 设置线条颜色setlinecolor();
  • 设置线条样式setlinestyle();高,宽,字体

8.文字绘制函数

  • 文字绘制函数用于在窗口上绘制文字

在这里插入图片描述

9.图像处理函数

  • 图像处理函数用于在窗口上显示图片

在这里插入图片描述

10.鼠标消息函数

  • 鼠标消息函数用于获取鼠标的信息

在这里插入图片描述

11.键盘消息函数

  • 键盘消息函数用于获取键盘按键消息。

在这里插入图片描述

12.其他函数

在这里插入图片描述

13.音乐播放

在这里插入图片描述

易错集锦

  1. 源文件问题: fata1 error c1189: #error : EasyXis only for C++。

    后缀要是cpp

  2. 参数错误,找不到对应的函数:error C2665: "outtextxy":2个重载中没有一个可以转换所有参数类型。

    是由于字符集导致的,1.在字符串前面加上大写的L,2.用TEXT(_T())把字符串包起起来。

    不需要添加任何代码,项目-属性-常规-字符集-使用多字节字符集

相关文章
微信养号脚本,导入手机号自动添加,autojs代码分享
这段代码实现了基本的微信自动添加好友功能,包括读取手机号文件、启动微信、搜索用户和发送
|
定位技术 Python
【python】pygame实现植物大战僵尸小游戏(附源码 有注释)
【python】pygame实现植物大战僵尸小游戏(附源码 有注释)
2510 1
|
6月前
|
JavaScript 数据可视化 前端开发
基于 Vue 与 D3 的可拖拽拓扑图技术方案及应用案例解析
本文介绍了基于Vue和D3实现可拖拽拓扑图的技术方案与应用实例。通过Vue构建用户界面和交互逻辑,结合D3强大的数据可视化能力,实现了力导向布局、节点拖拽、交互事件等功能。文章详细讲解了数据模型设计、拖拽功能实现、组件封装及高级扩展(如节点类型定制、连接样式优化等),并提供了性能优化方案以应对大数据量场景。最终,展示了基础网络拓扑、实时更新拓扑等应用实例,为开发者提供了一套完整的实现思路和实践经验。
659 77
|
设计模式
实践中面向对象的优缺点
【7月更文挑战第1天】本文介绍对象命名方案影响代码可读性。优点包括模块化、可重用性、可扩展性和易维护性。缺点包括类和对象识别的困难,学习曲线及可能的重用挑战。引用:《面向对象开发的陷阱》- 布鲁斯.韦伯斯特。
372 4
实践中面向对象的优缺点
|
11月前
|
人工智能 文字识别 算法
|
存储 JSON 监控
公司对员工电脑监控软件中USB设备监测的代码实现
在现代企业环境中,为了确保信息安全和监控员工行为,一些公司使用电脑监控软件来追踪员工的活动。其中,USB设备监测是一项重要的功能,可以帮助公司检测和控制外部存储设备的使用。本文将介绍公司对员工电脑监控软件中USB设备监测的代码实现,并讨论如何将监控到的数据自动提交到指定网站。
380 0
|
缓存 开发框架 PHP
laravel框架系列(一),Dcat Admin 安装
laravel框架系列(一),Dcat Admin 安装
508 0
|
存储 C语言 C++
【C语言进阶篇】关于指针的八个经典笔试题(图文详解)
【C语言进阶篇】关于指针的八个经典笔试题(图文详解)
789 0
|
开发者
自己制作游戏缺少游戏素材怎么办?
自己制作游戏缺少游戏素材怎么办?
246 0
下一篇
开通oss服务