首页IT科技c++小游戏源代码(猿创征文|【C++游戏引擎Easy2D】我拿吃零食的时间,学会了在C++上添加可点击按钮)

c++小游戏源代码(猿创征文|【C++游戏引擎Easy2D】我拿吃零食的时间,学会了在C++上添加可点击按钮)

时间2025-06-20 13:03:35分类IT科技浏览4539
导读:🧛‍♂️iecne个人主页::iecne的学习日志...

🧛‍♂️iecne个人主页:iecne的学习日志 💡每天关注

iecne的作品            ,一起进步

💪学C++必看iecne

本文专栏【C++游戏引擎】

.

🐳希望大家多多支持🥰一起进步呀!

✨前言

哈喽大家好                  ,我是iecne      ,本期为大家带来的是CPP/C++【游戏引擎Easy2D】想要做游戏但不会按钮鼠标控制?十分钟教会你Button按钮类            。包教包会         ,快来看看吧!

引擎支持 Visual Studio 2013 及以上版本                  ,如果你使用的是较低版本的 VS         ,那么你需要考虑一下更新你的编译器了

任务描述

如何根据据Button制作鼠标控制按钮类

本实践旨在通过多个代码的案列      ,让大家理解和掌握如何使用Easy2D引擎来将Button解释并且会运用

Easy2D导读

对于编程而言                  ,初学者最需要的不是技能            ,而是成就感                  。

如果你喜欢用 C/C++ 编写自己的小游戏   ,那么 Easy2D 将是个不错的选择                  ,它大大简化了游戏制作过程               ,可以帮助你快速开发 Windows 上的 2D 小游戏      。

它的特点和它的名字一样,Everything is Easy!

安装 Easy2D

使用简易安装器

运行里面的 install.bat 文件进行安装         。

点击此链接进行下载(纯免费               ,给官方搞成了VIP)

点击下载

安装程序会检测您已经安装的 Visual Studio 版本                  ,并根据您的选择将对应库文件解压至 VS 库目录下                  。

Easy2D 不支持 VS2012 及以下的版本(包括 VC6.0)   ,如果你使用的是低版本的 VS            ,那你需要尝试一下新版的 Visual Studio 了         。

安装环境:

操作系统:Windows 7 及以上操作系统      。

编译环境:Visual Studio 2013 (x86 & x64) 及以上版本                  。

一.如何使用Button

收藏本文找到更方便

1.1 精灵转化按钮

这类讲述使用方式和注意事项

1.1.1 使用方式

Button 表示一个按钮                  ,你可以把一段文字或者一个精灵变成按钮      ,它的使用方式很简单

创建一个精灵 auto btnSprite = gcnew Sprite(L"按钮图片.png");

创建点击按钮后的回调函数

auto callback = []() { // 点击按钮         ,进入一个新场景 SceneManager::enter(gcnew Scene); };

把精灵变成一个按钮                  ,并设置点击按钮后的回调函数

auto button = gcnew Button(btnSprite, callback);

把按钮加入场景

scene->addChild(button);

1.1.2 注意事项

Warning 把精灵变为按钮后         ,不需要再将精灵加入到场景中      ,否则将产生错误            。Debug 状态下引擎可以检测这种错误                  ,在错误产生时中断程序            ,并在控制台中给出提示   。

二.不同的按钮

2.1 四个种类

普通的按钮有四个状态:正常            、鼠标移入                  、按下      、禁用   ,你可以设置按钮在四种状态下显示不同的精灵或文本

// 创建一个精灵                  ,按钮普通状态显示 auto btnNormal = gcnew Sprite(L"按钮图片.png"); // 创建一个精灵               ,按钮按下状态显示 auto btnSelect = gcnew Sprite(L"按下时图片.png"); // 创建点击按钮后的回调函数 auto callback = []() { // 点击按钮,进入一个新场景 SceneManager::enter(gcnew Scene); }; // 创建按钮 auto button = gcnew Button; button->setNormal(btnNormal); button->setSelected(btnSelect); button->setClickFunc(callback); // 把按钮加入场景 scene->addChild(button);

2.2 禁用状态

如果你想让一个按钮停止工作               ,可以把它设为禁用状态

button->setEnable(false);

三.实例项目

作者曾做过一个通讯录                  ,在这里展现一下按钮部分

//通讯录和+符号 void TXLPLUS() { //设置通讯录字号 auto TXL_text = gcnew Text(L"通讯录"); //放大1.5倍 TXL_text->setScale(1.2); // 创建文字样式 auto style = Text::Style(); //设置颜色为黑色 style.color = Color::Black; Font font = Font(L"黑体", 40, Font::Weight::Bold, true); // 设置字体 TXL_text->setFont(font); // 显示在屏幕上 TXL_text->setAnchor(0.5f, 0.5f); TXL_text->setPos(80, 50); //应用场景 b_changjing->addChild(TXL_text); // 创建开始按钮 auto startBtn = gcnew Button; startBtn->setScale(2.0f, 2.0f); // 设置按钮图片 startBtn->setNormal(gcnew Sprite(L"res/plus002.png")); // 设置按钮被选中时的图片 startBtn->setSelected(gcnew Sprite(L"res/plus001.png")); // 获取鼠标位置 Point mousePos = Input::getMousePos(); //判断 if (mousePos.x >= 530 && mousePos.x <= 521) { if (mousePos.y >= 30 && mousePos.y <= 51) { startBtn->setDisabled(gcnew Sprite(L"res/plus003.png")); } } // 设置按钮位置 startBtn->setPos(530,30); // 添加开始按钮 b_changjing->addChild(startBtn); } //查询通讯录 void CHAXUN() { //以这种形式打印变量 //int s = 1000; //auto test = gcnew Text(FormatString(L"雷数 %d", s)); // 将 Text 添加到场景中 //b_changjing->addChild(test); // 创建开始按钮 auto startBtn = gcnew Button; startBtn->setScale(1.0f, 1.0f); // 设置按钮图片 startBtn->setNormal(gcnew Sprite(L"res/查询001.png")); // 设置按钮被选中时的图片 startBtn->setSelected(gcnew Sprite(L"res/查询002.png")); // 获取鼠标位置 Point mousePos = Input::getMousePos(); //************** // 判断省略 //************** // 设置按钮位置 startBtn->setPos(150, 150); // 添加开始按钮 b_changjing->addChild(startBtn); XUNWENCK(); }

关于命名

Easy2D 按照以下规律命名函数:

小驼峰式命名法则   ,第一个单词小写            ,后面的单词首字母大写                  ,如Window::setTitle 所有函数均按照动词+名语形式命名      ,如Logger::showConsole 获取对象的属性值:get+属性名         ,如Node::getWidth 修改对象的属性值:set+属性名                  ,如Node::setPos 获取对象的状态(bool值):is+状态名         ,如Node::isVisiable

✨总结

本节课主要是讲解了Easy2D引擎实现的教程      ,至此该课示例的思想博主已经真真切切彻彻底底分享完了                  ,相信大家对这个逻辑有了一定的理解            ,大家可以自己动手敲敲代码   ,感受一下                  ,包教包会                  。若有任何侵权和不妥之处               ,请私信于我,定积极配合处理               ,看到必回!!!

帅的人已然点赞收藏关注                  ,而丑的人还在犹豫   ,被犹豫了            ,快三连吧! 原创不易                  ,还希望各位大佬支持一下 点赞      ,你的认可是我创作的动力! 收藏         ,你的青睐是我努力的方向! 评论                  ,你的意见是我进步的财富!

感谢每一个观看本篇文章的朋友         ,更多精彩敬请期待~( ̄▽ ̄~)~:

iecne的博客

若有任何侵权和不妥之处      ,请私信于我                  ,定积极配合处理            ,看到必回!!!
声明:本站所有文章   ,如无特殊说明或标注                  ,均为本站原创发布               。任何个人或组织               ,在未征得本站同意时,禁止复制         、盗用                  、采集         、发布本站内容到任何网站      、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益               ,可联系我们进行处理               。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
three.js 全景图(Three.js-设置环境纹理及加载hdr环境贴图)