EasyX库使用入门 [学编程做游戏,快速入门](一)

简介: EasyX库使用入门 [学编程做游戏,快速入门]

前言


准备一个任意vs系列的编译器(vs c++ 6.0, vs2011, vs2013, vs2017, vs2019等等)

下载EasyX帮助文档

下载EasyX并根据提示完成配置(很简单的,跟着提示走一次成功,vscode配置比较麻烦本文不做说明)

下载地址:https://easyx.cn/

参考视频:【C/C++/EasyX】学编程,做游戏,小白快速入门图形编程,零基础入门到精通,学习就是这么快乐_哔哩哔哩_bilibili

EasyX是什么?


EasyX是针对C++的图形库,可以帮助C/C++初学者快速上手图形的游戏编程。比如:可以基于EasyX图形库很快的用几何图形画一个房子,或者一辆移动的小车,可以编写俄罗斯方块,贪吃蛇,黑白棋等小游戏.

许多人学编程都是从C语言入门的,而目前的现状是:


学习只交基础语法,一直都在黑窗口上学习,同学们都学习很乏味。

即使有的学校教图形编程也是,使用一些难度较高的,比如win32,OpenGL门槛依然很高,初学者会受严重打击的.

于是就有了这个EasyX库,等这个学完后,我会后续更新天天酷跑,贪吃蛇,扫雷等小游戏,供大家练习参考,OK,现在开搞

EasyX坐标和设备


  • 坐标默认的原点是在窗口的左上角,X轴向右为正,Y轴向下为正,度量单位是像素点。

image.png

窗口函数


头文件:#include

  • initgraph(int width,int height,int flag=NULL);用于初始化绘图窗口(创建窗口)

    width  指定窗口的宽度

  height 指定窗口的高度

    flag     窗口的样式,默认为NULL

  • closegraph(); 关闭绘制窗口
  • cleardevice();清空绘图设备

代码示例:

#include<iostream>
//1.包含图形库头文件,就能使用提供给我的函数
#include<graphics.h>
using namespace std;
int main()
{
  //2.创建一个窗口,q确定窗口大小
  initgraph(640,480);
  getchar();
  //2.1关闭窗口
  closegraph();
  return 0;
}

运行结果:

image.png

EasyX颜色


RGB方式

setcolor(RGB(0,0,0));

字母方式

setcolor(BLACK);

六个十六进制

setcolor(0x000000);

RGB颜色对应表

一些常见的颜色

  • 0x000000 黑色
  • 0xFF0000 蓝色
  • 0xFFAAAA 蓝色
  • 0xFFFFFF 白色

图形绘制函数


图形绘制函数用于在窗口上绘制各种图形

  • 绘图函数从填充样式分类可分为无填充,有边框填充,无边框三种。
  •    以画圆为例:
1. circle()      无填充
2. fillcircle()  有边框填充
3. solidcircle() 无边框填充

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

circle画圆                   elipse画椭圆                pie画扇形                      polygon画多边形

rectangle画矩形         roundrect画圆角矩形   line画线                        putpixel 画点

设置填充颜色: setfillcolor;
设置线条颜色: setlinecolor;
设置线条样式: setlinestyle;

代码示例:

#include<iostream>
//1.包含图形库头文件,就能使用提供给我的函数
#include<graphics.h>
using namespace std;
int main()
{
  2.创建一个窗口,q确定窗口大小
  initgraph(640,480);
  //3.画圆
  setfillcolor(YELLOW);//设置填充颜色
  setlinecolor(BLUE);//设置线条颜色
  setlinestyle(PS_SOLID,5);//设置线条样式
  circle(50, 50, 50);
  fillcircle(50, 100, 50);
  solidcircle(50, 250, 50);
  getchar();
  //2.1关闭窗口
  closegraph();
  return 0;
}

运行结果:

image.png

设置背景颜色

1. setbkcolor(WHITE);//设置背景颜色
2. cleardevice();//清屏,清除掉原来的背景
3. //这两步合起来才能设置背景颜色

代码示例:

2.创建一个窗口,q确定窗口大小
  initgraph(640,480);
  //设置背景颜色,one two两步才能设置背景颜色
    setbkcolor(WHITE);//one
    cleardevice();//清屏//two
  //3.画圆
  setfillcolor(YELLOW);//设置填充颜色
  setlinecolor(BLUE);//设置线条颜色
  setlinestyle(PS_SOLID,5);//设置线条样式
  circle(50, 50, 50);
  fillcircle(50, 100, 50);
  solidcircle(50, 250, 50);
  getchar();
  //2.1关闭窗口
  closegraph();

运行结果:

image.png

文字绘制函数


  • outtextxy(int x,int y,PCTSTR str); 在指定位置输出字符串
  • settextcolor(COLORREF color);设置当前文字颜色
  • settextstyle(int nHeight,int nWidth,LPCTSTR lpszFace) 设置字体样式
  • textheight(LPCTSTR str);获取字符串实际占用的像素高度
  • textwidth(LPCTSTR str);获取字符串实际占用的像素宽度

输出字符串,设置文字颜色

1. settextcolor(RED);//设置文字颜色
2.  outtextxy(50, 50, "我是QK");

代码示例:

#include<iostream>
//1.包含图形库头文件,就能使用提供给我的函数
#include<graphics.h>
using namespace std;
int main()
{ 
    initgraph(640,480);
  //设置背景颜色,one two两步才能设置背景颜色
    setbkcolor(WHITE);//one
    cleardevice();//清屏//two
    settextcolor(RED);//设置文字颜色
  outtextxy(50, 50, "我是QK");
  getchar();
  //2.1关闭窗口
  closegraph();
  return 0;
}

image.png

//1.在字符串前面加上大写的L

   //2.用TEXT()把字符串包起来,_T()

正确方式:

1. settextcolor(RED);//设置文字颜色
2.  //1.在字符串前面加上大写的L
3.  //2.用TEXT()把字符串包起来,_T()
4.  outtextxy(50, 50, L"我是QK");

运行结果:

image.png

设置字体样式,大小,字体(上面的代码也加上去)

settextstyle(50, 0, L"楷体");

运行结果:

image.png

我们会发现字体是有背景的

1. //设置背景模式
2.  setbkmode(TRANSPARENT);

运行结果


image.png

文字居中

    settextcolor(RED);
  setfillcolor(BLUE);
  setlinecolor(BLACK);
  fillrectangle(200, 50, 500, 100);//设置一个矩形
  wchar_t arr[] = L"我是居中显示的maye";
  int width = 300/2-textwidth(arr) / 2;
  int height =50/2- textheight(arr) / 2;
  outtextxy(width+200,height+50 ,arr);

运行结果:

image.png

相关文章
|
网络安全 数据库 数据安全/隐私保护
docker安装Neo4j Community Server
docker安装Neo4j Community Server
1903 0
docker安装Neo4j Community Server
|
12月前
|
人工智能 并行计算 测试技术
从商业海报到二次元插画多风格通吃!HiDream-I1:智象未来开源文生图模型,17亿参数秒出艺术大作
HiDream-I1是智象未来团队推出的开源图像生成模型,采用扩散模型技术和混合专家架构,在图像质量、提示词遵循能力等方面表现优异,支持多种风格生成。
1071 2
从商业海报到二次元插画多风格通吃!HiDream-I1:智象未来开源文生图模型,17亿参数秒出艺术大作
|
测试技术 开发工具 git
利用Git Hooks自动化你的开发流程
Git Hooks 是 Git 的强大功能,允许在特定事件(如提交、推送、合并请求)发生时自动执行脚本。通过合理设置和使用 Git Hooks,可以自动化测试、代码风格检查等任务,提高代码质量和开发效率。本文介绍了如何设置和使用常用的 Git Hooks,包括 `pre-commit`、`pre-push` 和 `post-merge`,并提供了最佳实践建议。
|
自然语言处理 监控 安全
2025年阿里云短信验证码价格多少钱?计费模式与场景选型指南
随着企业数字化转型,短信验证码作为用户身份验证的重要工具,其成本与效率的平衡至关重要。阿里云短信服务以高可靠性、灵活计费和多场景适配著称。按量付费模式适合需求波动大的场景,而短信套餐包则为长期稳定需求提供了成本优势。针对不同业务场景,如高频验证、跨境业务及中小型企业轻量级需求,阿里云提供了定制化的选型策略。此外,通过阶梯定价、防盗刷监控等措施实现成本优化与风险规避,并不断进行技术升级以确保服务的安全性和稳定性。根据2025年最新数据,企业可根据自身需求选择最适合的阿里云短信验证码服务方案。
EasyX之跳跳球
本文介绍了如何使用EasyX库开发一个跳跳球游戏,包括绘制小球和矩形、实现小球的起跳与下落、处理矩形的移动、解决小球二次起跳问题、判断游戏结束条件以及打印分数。
319 0
EasyX之跳跳球
|
机器学习/深度学习 C语言 C++
【c语言】五子棋(EasyX图形库+背景音乐)
【c语言】五子棋(EasyX图形库+背景音乐)
579 1
|
人工智能 安全 算法
构建安全壁垒:大模型私有化部署的技术挑战与解决方案
【10月更文挑战第16天】随着大数据和云计算的发展,人工智能大模型为企业带来竞争优势,但也引发了数据安全和隐私保护的挑战。大模型私有化部署,即将模型和数据部署在企业内部服务器上,成为了解决这些问题的有效途径。这不仅减少了数据泄露风险,还能根据企业需求定制模型,提高适用性和准确性。面对计算资源利用、模型训练加速和数据安全保障等技术挑战,企业可通过优化算法、硬件加速和加强数据安全措施来应对。私有化部署正逐步受到关注,为企业的安全与创新发展提供新动力。
873 3
|
Web App开发 测试技术 持续交付
自动化测试的利器:Selenium与Python的完美结合
【9月更文挑战第21天】在软件开发的世界里,测试是确保产品质量的关键步骤。随着敏捷开发和持续集成的流行,自动化测试工具变得尤为重要。本文将介绍如何使用Selenium和Python进行高效的自动化测试,不仅提供代码示例,还深入探讨如何设计测试用例、选择正确的测试框架、以及如何整合到CI/CD流程中。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用的技巧。
334 3
|
C语言 C++
为什么要学习easyx图形库,他是做什么的?值得吗?
首先,easyx仅支持C语言和C++,这对于学习C语言的新生来说很友好,在熟悉C语言的同时还可以提高写代码的能力,在熟悉C语言以后,就可以尝试写一写小游戏了,比如说扫雷,三子棋,魔塔,贪吃蛇,飞机大战等等,但是当我们写出来运行的时候可以发现,游戏的逻辑写的没有问题,也的确可以玩,但是界面和人物怪兽什么的都很丑,全是符号不好看,同时控制台一闪一闪的,对玩家来说体验感极差,这也就是我们为什么要学习easyx图形库。
630 1
|
Java Shell API
实战教程:如何将自己的Python包发布到PyPI上
实战教程:如何将自己的Python包发布到PyPI上
4227 0
实战教程:如何将自己的Python包发布到PyPI上

热门文章

最新文章